From 18e3e2c4dbc447c2c8be4d257929c36cc3363875 Mon Sep 17 00:00:00 2001 From: nibhart1 Date: Fri, 24 Apr 2020 14:46:49 +0530 Subject: [PATCH 01/25] modified blast-radius --- Dockerfile | 19 +- Makefile | 14 + README.md | 123 +- bin/blast-radius | 39 +- blastradius/handlers/apply.py | 90 +- blastradius/handlers/dot.py | 180 +- blastradius/handlers/plan.py | 74 +- blastradius/handlers/terraform.py | 30 +- blastradius/server/server.py | 30 +- blastradius/server/static/css/style.css | 71 + .../server/static/example/demo-1/demo-1.json | 2509 ++++++++++++++++- .../server/static/example/demo-1/demo-1.svg | 754 ++++- .../static/example/demo-1/demonew-1.svg | 757 +++++ .../server/static/example/demo-2/demo-2.json | 768 +++-- .../server/static/example/demo-2/demo-2.svg | 410 +-- .../static/example/demo-2/demonew-2.svg | 120 + .../server/static/example/demo-3/demo-3.json | 628 ++--- .../server/static/example/demo-3/demo-3.svg | 350 +-- .../static/example/demo-3/demonew-3.svg | 106 + .../server/static/js/blast-radius-ext.js | 718 +++++ blastradius/server/static/js/blast-radius.js | 4 +- blastradius/server/templates/index.html | 355 ++- doc/blast-radius-demo.svg | 876 ++++-- doc/blastradiusext.png | Bin 0 -> 393801 bytes doc/blastradiusextdemo.png | Bin 0 -> 394383 bytes doc/blastradiusextinfo.png | Bin 0 -> 456720 bytes doc/embedded.md | 15 +- docker-entrypoint.sh | 4 + requirements.txt | 1 + setup.py | 5 +- 30 files changed, 6797 insertions(+), 2253 deletions(-) create mode 100644 blastradius/server/static/example/demo-1/demonew-1.svg create mode 100644 blastradius/server/static/example/demo-2/demonew-2.svg create mode 100644 blastradius/server/static/example/demo-3/demonew-3.svg create mode 100644 blastradius/server/static/js/blast-radius-ext.js create mode 100644 doc/blastradiusext.png create mode 100644 doc/blastradiusextdemo.png create mode 100644 doc/blastradiusextinfo.png diff --git a/Dockerfile b/Dockerfile index 2d35634..03520f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,27 @@ -ARG TF_VERSION=0.12.12 +ARG TF_VERSION=0.12.20 ARG PYTHON_VERSION=3.7 +FROM python:$PYTHON_VERSION-alpine + + + FROM hashicorp/terraform:$TF_VERSION AS terraform +FROM ibmterraform/terraform-provider-ibm-docker AS provideribm +FROM nibhart1/hcl2json:hcl2json AS hcl2json FROM python:$PYTHON_VERSION-alpine RUN pip install -U pip ply \ && apk add --update --no-cache graphviz ttf-freefont - +RUN pip install graphviz COPY --from=terraform /bin/terraform /bin/terraform +COPY --from=provideribm /go/bin/terraform-provider-ibm_v* /root/.terraform.d/plugins/linux_amd64/terraform-provider-ibm +COPY --from=hcl2json /go/bin/hcl2json /bin/hcl2json COPY ./docker-entrypoint.sh /bin/docker-entrypoint.sh RUN chmod +x /bin/docker-entrypoint.sh +WORKDIR /bin +RUN ls + WORKDIR /src COPY . . RUN pip install -e . @@ -19,3 +30,7 @@ WORKDIR /data ENTRYPOINT ["/bin/docker-entrypoint.sh"] CMD ["blast-radius", "--serve"] + + + + diff --git a/Makefile b/Makefile index b3a191a..1134969 100644 --- a/Makefile +++ b/Makefile @@ -9,11 +9,25 @@ CATEGORIES_JSON = ./blastradius/server/static/js/categories.json CATEGORIES_JS = ./blastradius/server/static/js/categories.js +GOPATH = $(CURDIR)/blastradius +export GOPATH + .PHONY: clean clean: -find . -type d -name __pycache__ -exec rm -r {} \+ -rm $(CATEGORIES_JSON) -rm $(CATEGORIES_JS) + -rm -rf hcl2json + +# install +.PHONY: install +install: hcl2json + pipenv install + +# build hcl2json binary +.PHONY: hcl2json +hcl2json: + -go get github.com/tmccombs/hcl2json # build pypi package .PHONY: dist diff --git a/README.md b/README.md index d475fd7..6be4c34 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,79 @@ # Blast Radius -[![CircleCI](https://circleci.com/gh/28mm/blast-radius/tree/master.svg?style=svg)](https://circleci.com/gh/28mm/blast-radius/tree/master) [![PyPI version](https://badge.fury.io/py/BlastRadius.svg)](https://badge.fury.io/py/BlastRadius) [terraform]: https://www.terraform.io/ [examples]: https://28mm.github.io/blast-radius-docs/ +[overlayfs]: -_Blast Radius_ is a tool for reasoning about [Terraform][] dependency graphs -with interactive visualizations. +_Blast Radius_ is a tool for reasoning about [Terraform][] dependency graphs with interactive visualizations. Use _Blast Radius_ to: * __Learn__ about *Terraform* or one of its providers through real [examples][] * __Document__ your infrastructure * __Reason__ about relationships between resources and evaluate changes to them -* __Interact__ with the diagram below (and many others) [in the docs][examples] +* __Interact__ with the diagrams below (and many others) [in the docs][examples] -![screenshot](doc/blastradius-interactive.png) +--- + +## Blast Radius +![screenshot](doc/blastradiusext.png) + +--- ## Prerequisites * [Graphviz](https://www.graphviz.org/) + > __Note:__ For macOS you can `brew install graphviz` * [Python](https://www.python.org/) 3.7 or newer +* [Go](https://golang.org/) 1.12.16 or newer +* [Terraform][] 0.12.x or newer -> __Note:__ For macOS you can `brew install graphviz` +--- ## Quickstart -The fastest way to get up and running with *Blast Radius* is to install it with -`pip` to your pre-existing environment: - -```sh -pip install blastradius -``` - -Once installed just point *Blast Radius* at any initialized *Terraform* -directory: - -```sh -blast-radius --serve /path/to/terraform/directory -``` - -And you will shortly be rewarded with a browser link http://127.0.0.1:5000/. +For fastest way to get up and running with blast-radius is as follows: + +* Download and install the wheel files from the [release](https://github.com/nishubharti/blast-radius/releases) + ``` + easy_install blastradius-0.1.25.0-py3-none-any.whl + ``` +* Once installed just point Blast Radius at any initialized Terraform directory: + ```sh + blast-radius --serve /path/to/terraform/directory + ``` +* Go to the browser link http://127.0.0.1:5000/ to view the Blast Radius diagram for the terraform file. + + ![BlastRadius](doc/blastradiusextdemo.png) + +* Enrich the Blast Radius diagrams with the outcome of Terraform plan & apply actions: + ``` + terraform plan --out tfplan.binary + terraform show -json tfplan.binary > tfplan.json + terraform apply + ``` + + ```sh + blast-radius --serve /path/to/terraform/directory + ``` +* Go to the browser link http://127.0.0.1:5000/ to view the Blast Radius diagram, use the tooltip `Blast-radius-extended` to view the enrichments. + + The enrichments include - information from the Plan file & State file. + Click the columns adjacent to the Resource Names to view these enrichment in the side panel view. + + ![BlastRadiusExt](doc/blastradiusextinfo.png) + +--- + +## Build your own wheel file + +* Create wheel file of this repo + ```sh + python3 setup.py sdist bdist_wheel + ``` +--- ## Docker @@ -50,34 +82,28 @@ And you will shortly be rewarded with a browser link http://127.0.0.1:5000/. To launch *Blast Radius* for a local directory by manually running: -```sh -docker run --rm -it -p 5000:5000 \ - -v $(pwd):/data:ro \ - --security-opt apparmor:unconfined \ - --cap-add=SYS_ADMIN \ - 28mm/blast-radius -``` +* create a dockerhub account + ```sh + docker build -t /blast-radius:v1 . + docker push /blast-radius:v1 + ``` -A slightly more customized variant of this is also available as an example -[docker-compose.yml](./examples/docker-compose.yml) usecase for Workspaces. + ```sh + docker run --cap-add=SYS_ADMIN -dit -p 5000:5000 -v :/data:ro /blast-radius:v1 + ``` ### Docker configurations *Terraform* module links are saved as _absolute_ paths in relative to the project root (note `.terraform/modules/`). Given these paths will vary -betwen Docker and the host, we mount the volume as read-only, assuring we don't -ever interfere with your real environment. +betwen Docker and the host, we mount the volume as read-only, assuring we don't ever interfere with your real environment. -However, in order for *Blast Radius* to actually work with *Terraform*, it needs -to be initialized. To accomplish this, the container creates an [overlayfs][] -that exists within the container, overlaying your own, so that it can operate +However, in order for *Blast Radius* to actually work with *Terraform*, it needs to be initialized as well as planned compulsory. To accomplish this, the container creates an [overlayfs][] that exists within the container, overlaying your own, so that it can operate independently. To do this, certain runtime privileges are required -- specifically `--cap-add=SYS_ADMIN`. -For more information on how this works and what it means for your host, check -out the [runtime privileges][privileges] documentation. -#### Docker & Subdirectories +### Docker & Subdirectories If you organized your *Terraform* project using stacks and modules, *Blast Radius* must be called from the project root and reference them as @@ -101,14 +127,12 @@ It consists of 3 modules `foo`, `bar` and `dead`, followed by one `beef` stack. To apply *Blast Radius* to the `beef` stack, you would want to run the container with the following: -```sh -$ cd project -$ docker run --rm -it -p 5000:5000 \ - -v $(pwd):/data:ro \ - --security-opt apparmor:unconfined \ - --cap-add=SYS_ADMIN \ - 28mm/blast-radius --serve stacks/beef -``` + ```sh + $ cd project + $ docker run --cap-add=SYS_ADMIN -dit -p 5000:5000 -v :/data:ro /blast-radius:v1 + ``` + +--- ## Embedded Figures @@ -121,11 +145,14 @@ You will need the following: You can read more details in the [documentation](doc/embedded.md) +--- + ## Implementation Details *Blast Radius* uses the [Graphviz][] package to layout graph diagrams, -[PyHCL](https://github.com/virtuald/pyhcl) to parse [Terraform][] configuration, -and [d3.js](https://d3js.org/) to implement interactive features and animations. +[hcl2json](https://github.com/tmccombs/hcl2json) to parse [Terraform][] configuration, and [d3.js](https://d3js.org/) to implement interactive features and animations. + +--- ## Further Reading diff --git a/bin/blast-radius b/bin/blast-radius index eca3dd9..cc37c50 100755 --- a/bin/blast-radius +++ b/bin/blast-radius @@ -9,6 +9,7 @@ import sys import argparse import os import itertools +import subprocess # 1st party libraries from blastradius.handlers.dot import DotGraph, Format, DotNode @@ -17,6 +18,13 @@ from blastradius.handlers.apply import Apply from blastradius.handlers.terraform import Terraform from blastradius.server.server import app + +def run_tf_graph(): + completed = subprocess.run(['terraform', 'graph'], stdout=subprocess.PIPE) + if completed.returncode != 0: + raise Exception('Execution error', completed.stderr) + return completed.stdout.decode('utf-8') + def main(): parser = parser = argparse.ArgumentParser(description='blast-radius: Interactive Terraform Graph Visualizations') @@ -27,10 +35,13 @@ def main(): output_group.add_argument('--json', action='store_const', const=True, default=False, help='print a json representation of the Terraform graph') output_group.add_argument('--dot', action='store_const', const=True, default=False, help='print the graphviz/dot representation of the Terraform graph') output_group.add_argument('--svg', action='store_const', const=True, default=False, help='print the svg representation of the Terraform graph') + output_group.add_argument('--newsvg', action='store_const', const=True, default=False, help='print the modified svg representation of the Terraform graph') output_group.add_argument('--serve', action='store_const', const=True, default=False, help='spins up a webserver with an interactive Terraform graph') parser.add_argument('--graph', type=str, help='`terraform graph` output (defaults to stdin)', default=sys.stdin) - + parser.add_argument('--planjson', type=str, help='`terraform plan json` output') + parser.add_argument('--applyjson', type=str, help='`terraform graph` output (defaults to stdin)', default=sys.stdin) + # options to limit, re-focus, and re-center presentation of larger graphs. constraint_group = parser.add_mutually_exclusive_group() constraint_group.add_argument('--module-depth', type=int, help='hide module details', required=False) @@ -38,9 +49,9 @@ def main(): constraint_group.add_argument('--center', type=str, help='', required=False) # TODO present changes, and animate `terraform apply' - #parser.add_argument('--plan', type=str, help='terraform plan output', default=None) + parser.add_argument('--plan', type=str, help='terraform plan output', default=None) #parser.add_argument('--state', type=str, help='tfstate file', default=None) - #parser.add_argument('--apply', type=str, help='terraform apply log', default=None) + parser.add_argument('--apply', type=str, help='terraform apply log', default=None) args = parser.parse_args() @@ -49,11 +60,23 @@ def main(): app.run(host='0.0.0.0',port=args.port) sys.exit(0) - elif args.json or args.dot or args.svg: + # argument for plan info + elif args.plan: + plan = Plan(args.planjson) + print(plan.json()) + + # argument for apply info + elif args.apply: + apply = Apply(args.applyjson) + print(apply.json()) + + elif args.json or args.dot or args.svg or args.newsvg: if args.graph is sys.stdin: - dot = DotGraph('', file_contents=sys.stdin.read()) + dot = DotGraph('','', file_contents=sys.stdin.read()) + elif args.newsvg: #for extended blasradius svg + dot = DotGraph('ext','', file_contents=run_tf_graph()) else: - dot = DotGraph(args.graph) + dot = DotGraph('',args.graph) # we might not want to show every node in the depedency graph # specifying --module-depth is an easy way to limit detail @@ -88,9 +111,11 @@ def main(): print(dot.dot()) elif args.svg: print(dot.svg()) + elif args.newsvg: + print(dot.svg()) else: parser.print_help() if __name__ == '__main__': - main() + main() \ No newline at end of file diff --git a/blastradius/handlers/apply.py b/blastradius/handlers/apply.py index 1390828..06ae9f8 100644 --- a/blastradius/handlers/apply.py +++ b/blastradius/handlers/apply.py @@ -1,55 +1,37 @@ -# standard libraries -import re +from __future__ import print_function import json - -# 1st party libraries -from blastradius.graph import Graph, Node, Edge -from blastradius.handlers.dot import DotNode -from blastradius.util import Re - -class Apply(Graph): - def __init__(self, filename): - self.filename = filename - self.contents = '' - self.nodes = [] # we can populate this, - self.edges = [] # but not this! - - ansi_escape = re.compile(r'\x1b[^m]*m') - with open(filename, 'r') as f: - self.contents = ansi_escape.sub('', f.read()) - - # example output: - # - # aws_vpc.default: Creation complete after 4s (ID: vpc-024f7a64) - # ... - # aws_key_pair.auth: Creating... - # fingerprint: "" => "" - # key_name: "" => "default-key" - # ... - # aws_instance.web: Still creating... (10s elapsed) - # aws_instance.web: Still creating... (20s elapsed) - # aws_instance.web (remote-exec): Connecting to remote host via SSH... - # aws_instance.web (remote-exec): Host: 1.2.3.4 - # aws_instance.web (remote-exec): User: ubuntu - # ... - - node_begin_re =r'(?P\S+)\:\s+Creating...' - node_compl_re = r'(?P\S+)\:\s+Creation\s+complete\s+after\s+(?P\S+)\s+' - node_still_re = r'(?P\S+)\:\s+Still\s+creating\.\.\.\s+\((?P\S+)\s+' - - for line in self.contents.splitlines(): - - r = Re() - if r.match(node_begin_re, line): - - - - - break - - - - - print(self.contents) - - +import sys +import graphviz +import jinja2 +import json +import subprocess +import os.path +from os import path + +class Apply(): + def __init__(self,filename=None): + self.apply_resource_info = [] + #create json for apply + #reading from state file + if filename == None: + if(path.exists("terraform.tfstate")): + with open("terraform.tfstate", 'r') as f: + data = json.load(f) + else: + data = "" + else: + with open(filename, 'r') as f: + data = json.load(f) + + if (data) : + for index, var in enumerate(data["resources"]): + temp_data = dict() + temp_data = var + self.apply_resource_info.append(temp_data) + + else: + self.apply_resource_info.append("not applied") + + def json(self): + my_json_string = json.dumps(self.apply_resource_info,indent=4, sort_keys=True) + return my_json_string \ No newline at end of file diff --git a/blastradius/handlers/dot.py b/blastradius/handlers/dot.py index 1126c4b..4b9210e 100644 --- a/blastradius/handlers/dot.py +++ b/blastradius/handlers/dot.py @@ -1,25 +1,38 @@ # standard libraries +from __future__ import print_function import json import re import subprocess from collections import OrderedDict from collections import deque + +import sys +import graphviz +import jinja2 + + + # 3rd party libraries import jinja2 # 1st party libraries from blastradius.graph import Graph, Node, Edge from blastradius.util import OrderedSet +from blastradius.handlers.plan import Plan +from blastradius.handlers.apply import Apply class DotGraph(Graph): - def __init__(self, filename, file_contents=None): + def __init__(self,flag,filename, file_contents=None): self.filename = filename self.nodes = [] self.edges = [] self.clusters = OrderedDict() self.clusters['root'] = True # Used like an ordered Set. + self.plan = Plan() + self.apply = Apply() + self.flag = flag if file_contents: self.contents = file_contents @@ -44,17 +57,65 @@ def __init__(self, filename, file_contents=None): e = DotEdge(d['src'], d['dst'], fmt=fmt) self.edges.append(e) elif 'node' in m.groupdict(): - self.nodes.append(DotNode(d['node'], fmt=fmt)) - break - + + sp = d['node'].split(" ") + + res = sp[1].replace("data.","") + + type = sp[1].split(".")[0] + if type == "data": + #process data source: + apply_data = None + plan_data = None + if ("not applied" in self.apply.apply_resource_info): + apply_data = "not yet applied" + plan_data = "data-source" + self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + break + + else: + for i in self.apply.apply_resource_info: + if i['type']+"."+i['name'] == res: + apply_data = i + plan_data = "data-source" + self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + break + else: + if type == "provider": + apply_data = {} + plan_data = {} + self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + else: + apply_data = None + plan_data = None + if ("not applied" in self.apply.apply_resource_info): + apply_data = "not yet applied" + else: + for i in self.apply.apply_resource_info: + if i['type']+"."+i['name'] == res: + apply_data = i + break + + for i in self.plan.resource_info: + data = i["address"].split("[") + if data[0] == res: + plan_data = i + break + self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + # terraform graph output doesn't always make explicit node declarations; # sometimes they're a side-effect of edge definitions. Capture them. for e in self.edges: if e.source not in [ n.label for n in self.nodes ]: - self.nodes.append(DotNode(e.source)) + plan_data = {} + apply_data = {} + self.nodes.append(DotNode(e.source, plan_data,apply_data)) + if e.target not in [ n.label for n in self.nodes ]: - self.nodes.append(DotNode(e.target)) - + plan_data = {} + apply_data = {} + self.nodes.append(DotNode(e.target, plan_data,apply_data)) + self.stack('var') self.stack('output') @@ -80,7 +141,11 @@ def get_node_by_name(self, label): def dot(self): 'returns a dot/graphviz representation of the graph (a string)' - return self.dot_template.render({ 'nodes': self.nodes, 'edges': self.edges, 'clusters' : self.clusters, 'EdgeType' : EdgeType }) + + if self.flag == "ext": + return self.dot_template_ext.render({ 'nodes': self.nodes, 'edges': self.edges, 'clusters' : self.clusters, 'EdgeType' : EdgeType }) + else : + return self.dot_template.render({ 'nodes': self.nodes, 'edges': self.edges, 'clusters' : self.clusters, 'EdgeType' : EdgeType }) def json(self): edges = [ dict(e) for e in self.edges ] @@ -225,7 +290,6 @@ def find_edge(edges, e): # add placeholder nodes, remove nodes beyond specified module_depth. self.nodes = list(OrderedSet(placeholders) | (OrderedSet(self.nodes) - OrderedSet(too_deep))) - def center(self, node): ''' prunes graph to include only (1) the given node, (2) its @@ -303,20 +367,93 @@ def focus(self, node): self.edges = list(edges_to_save) self.nodes = [ n for n in self.nodes if n.label in nodes_to_save ] - - # # Formatting templates. # - dot_template_str = """ -digraph { + dot_template_str_ext = """ + digraph { compound = "true" graph [fontname = "courier new",fontsize=8]; node [fontname = "courier new",fontsize=8]; edge [fontname = "courier new",fontsize=8]; + + {# just the root module #} + {% for cluster in clusters %} + subgraph "{{cluster}}" { + style=invis; + {% for node in nodes %} + {% if node.cluster == cluster and node.module == 'root' %} + {% if node.type %} + {% if node.type == 'var' or node.type == 'provider' or node.type == 'meta' or node.type == 'provider' or node.type == 'output'%} + "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=< + + +
{{node.type}}
{{node.resource_name}}
>]; + {% else %} + "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=< + {% if node.plan.change %} + {% if node.plan.change.actions[0] == "create" %} + + {% elif node.plan.change.actions[0] == "delete" and node.plan.change.actions[1] == "create"%} + + {% elif node.plan.change.actions[0] == "delete"%} + + {% elif node.plan.change.actions[0] == "update"%} + + {% else %} + + {% endif %} + {% else %} + + {% endif %} +
{{node.type}}+
{{node.type}}-/+
{{node.type}}-
{{node.type}}#
{{node.type}}
{{node.type}}
{{node.resource_name}}
>]; + {% endif %} + {% else %} + "{{node.label}}" [{{node.fmt}}] + {% endif %} + {% endif %} + {% endfor %} + } + {% endfor %} + + {# non-root modules #} + {% for node in nodes %} + {% if node.module != 'root' %} + {% if node.collapsed %} + "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=< + {% for module in node.modules %}{% endfor %} + + +
(M) {{module}}
(collapsed)
...
>]; + {% else %} + "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=< + {% for module in node.modules %}{% endfor %} + + +
(M) {{module}}
{{node.type}}
{{node.resource_name}}
>]; + {% endif %} + {% endif %} + + {% endfor %} + + {% for edge in edges %} + {% if edge.edge_type == EdgeType.NORMAL %}"{{edge.source}}" -> "{{edge.target}}" {% if edge.fmt %} [{{edge.fmt}}] {% endif %}{% endif %} + {% if edge.edge_type == EdgeType.LAYOUT_SHOWN %}"{{edge.source}}" -> "{{edge.target}}" {% if edge.fmt %} [{{edge.fmt}}] {% endif %}{% endif %} + {% if edge.edge_type == EdgeType.LAYOUT_HIDDEN %}"{{edge.source}}" -> "{{edge.target}}" [style="invis"]{% endif %} + {% endfor %} +} +""" + + dot_template_str = """ + digraph { + compound = "true" + graph [fontname = "courier new",fontsize=8]; + node [fontname = "courier new",fontsize=8]; + edge [fontname = "courier new",fontsize=8]; + {# just the root module #} {% for cluster in clusters %} subgraph "{{cluster}}" { @@ -327,7 +464,9 @@ def focus(self, node): "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=< +
{{node.type}}
{{node.resource_name}}
>]; + {% else %} "{{node.label}}" [{{node.fmt}}] {% endif %} @@ -365,6 +504,7 @@ def focus(self, node): } """ dot_template = jinja2.Environment(loader=jinja2.BaseLoader()).from_string(dot_template_str) + dot_template_ext = jinja2.Environment(loader=jinja2.BaseLoader()).from_string(dot_template_str_ext) class Format: @@ -402,7 +542,7 @@ def __str__(self): class DotNode(Node): - def __init__(self, label, fmt=None): + def __init__(self, label, data,apply_data,fmt=None): self.label = DotNode._label_fixup(label) self.fmt = fmt if fmt else Format('') # graphviz formatting. @@ -415,14 +555,14 @@ def __init__(self, label, fmt=None): self.module = DotNode._module(self.label) # for module groupings. 'root' or 'module.foo.module.bar' self.cluster = None # for stacked resources (usually var/output). self.collapsed = False - + self.plan = data + self.apply = apply_data self.fmt.add(id=self.svg_id, shape='box') - - + self.modules = [ m for m in self.module.split('.') if m != 'module' ] def __iter__(self): - for key in {'label', 'simple_name', 'type', 'resource_name', 'group', 'svg_id', 'definition', 'cluster', 'module', 'modules'}: + for key in {'label', 'simple_name', 'type', 'resource_name', 'group', 'svg_id', 'definition', 'cluster', 'module', 'modules', 'plan', 'apply'}: yield (key, getattr(self, key)) # @@ -520,6 +660,4 @@ def __init__(self, source, target, fmt=None, edge_type=EdgeType.NORMAL): def __iter__(self): for key in {'source', 'target', 'svg_id', 'edge_type'}: - yield (key, getattr(self, key)) - - + yield (key, getattr(self, key)) \ No newline at end of file diff --git a/blastradius/handlers/plan.py b/blastradius/handlers/plan.py index 15c0651..1637e92 100644 --- a/blastradius/handlers/plan.py +++ b/blastradius/handlers/plan.py @@ -1,54 +1,24 @@ -# standard libraries -import re +from __future__ import print_function +import json +import sys +import graphviz +import jinja2 import json -# 1st party libraries -from blastradius.graph import Graph, Node, Edge -from blastradius.handlers.dot import DotNode - -class Plan(Graph): - def __init__(self, filename): - self.filename = filename - self.contents = '' - self.nodes = [] # we can populate this, - self.edges = [] # but not this! - - ansi_escape = re.compile(r'\x1b[^m]*m') - with open(filename, 'r') as f: - self.contents = ansi_escape.sub('', f.read()) - - node_re = re.compile(r'\s+(?P(\+|\-))\s+(?P\S+)') - attr_re = re.compile(r'\s+(?P\S+)\:\s+(?P.*)') - - action = None - name = None - definition = {} - for line in self.contents.splitlines(): - for p in [ node_re, attr_re ]: - m = p.match(line) - if m: - d = m.groupdict() - if 'action' in d: - if action: - self.nodes.append(PlanNode(action, name, definition)) - action = d['action'] - name = d['name'] - definition = {} - elif 'key' in d: - definition[d['key']] = d['value'] - break - - print(json.dumps([ dict(n) for n in self.nodes], indent=4)) - -class PlanNode(Node): - def __init__(self, action, name, definition): - self.action = action - self.simple_name = name - self.definition = definition - self.type = DotNode._resource_type(self.simple_name) - self.resource_name = DotNode._resource_name(self.simple_name) - self.svg_id = 'node_' + str(Node.svg_id_counter()) - - def __iter__(self): - for key in ['action', 'simple_name', 'definition', 'type', 'resource_name', 'svg_id']: - yield (key, getattr(self, key)) +class Plan(): + def __init__(self,filename=None): + self.resource_info = [] + #create json reading from tfplan.json file + with open("tfplan.json", 'r') as f: + data = json.load(f) + for index, var in enumerate(data["planned_values"]["root_module"]["resources"]): + temp_data = dict() + temp_data = var + for attribute, variable in enumerate(data["resource_changes"]): + if temp_data["address"] == variable["address"]: + temp_data["change"] = variable["change"] + self.resource_info.append(temp_data) + + def json(self): + my_json_string = json.dumps(self.resource_info,indent=4, sort_keys=True) + return my_json_string \ No newline at end of file diff --git a/blastradius/handlers/terraform.py b/blastradius/handlers/terraform.py index 00b41d9..7b64ac6 100644 --- a/blastradius/handlers/terraform.py +++ b/blastradius/handlers/terraform.py @@ -3,9 +3,12 @@ import io import os import re +import json # 3rd party libraries -import hcl # hashicorp configuration language (.tf) +# hcl2json convert hcl to json +import subprocess +from pkg_resources import resource_filename class Terraform: """Finds terraform/hcl files (*.tf) in CWD or a supplied directory, parses @@ -13,17 +16,23 @@ class Terraform: def __init__(self, directory=None, settings=None): self.settings = settings if settings else {} - # handle the root module first... self.directory = directory if directory else os.getcwd() - #print(self.directory) - self.config_str = '' + self.config_str:str = '' iterator = iglob( self.directory + '/*.tf') + data = {} + for fname in iterator: - with open(fname, 'r', encoding='utf-8') as f: - self.config_str += f.read() + ' ' - config_io = io.StringIO(self.config_str) - self.config = hcl.load(config_io) + out=subprocess.getoutput(["hcl2json {}".format(fname)]) + file_data = json.loads(out) + for key in file_data: + if not key in data.keys(): + data.update(file_data) + else: + for k,v in file_data[key].items(): + data[key][k]=v + + self.config = data # then any submodules it may contain, skipping any remote modules for # the time being. @@ -66,7 +75,6 @@ def __init__(self, directory=None, settings=None): # fixme path join. eek. self.modules[name] = Terraform(directory=self.directory+'/'+source, settings=mod) - def get_def(self, node, module_depth=0): # FIXME 'data' resources (incorrectly) handled as modules, necessitating @@ -89,10 +97,10 @@ def get_def(self, node, module_depth=0): '' : lambda x: '' } if node.type in types: return types[node.type](node) - + # resources are a little different _many_ possible types, # nested within the 'resource' field. else: return self.config['resource'][node.type][node.resource_name] except: - return '' + return '' \ No newline at end of file diff --git a/blastradius/server/server.py b/blastradius/server/server.py index aae9278..7b6b463 100644 --- a/blastradius/server/server.py +++ b/blastradius/server/server.py @@ -33,7 +33,26 @@ def index(): @app.route('/graph.svg') def graph_svg(): Graph.reset_counters() - dot = DotGraph('', file_contents=run_tf_graph()) + dot = DotGraph('','', file_contents=run_tf_graph()) + + module_depth = request.args.get('module_depth', default=None, type=int) + refocus = request.args.get('refocus', default=None, type=str) + + if module_depth is not None and module_depth >= 0: + dot.set_module_depth(module_depth) + + if refocus is not None: + node = dot.get_node_by_name(refocus) + if node: + dot.center(node) + + return dot.svg() + + +@app.route('/graphnew.svg') +def graphnew_svg(): + Graph.reset_counters() + dot = DotGraph('ext','',file_contents=run_tf_graph()) module_depth = request.args.get('module_depth', default=None, type=int) refocus = request.args.get('refocus', default=None, type=str) @@ -52,7 +71,7 @@ def graph_svg(): @app.route('/graph.json') def graph_json(): Graph.reset_counters() - dot = DotGraph('', file_contents=run_tf_graph()) + dot = DotGraph('','',file_contents=run_tf_graph()) module_depth = request.args.get('module_depth', default=None, type=int) refocus = request.args.get('refocus', default=None, type=str) if module_depth is not None and module_depth >= 0: @@ -87,9 +106,4 @@ def get_terraform_version(): return completed.stdout.decode('utf-8').splitlines()[0].split(' ')[-1] def get_terraform_exe(): - return which('terraform') - - - - - + return which('terraform') \ No newline at end of file diff --git a/blastradius/server/static/css/style.css b/blastradius/server/static/css/style.css index 63d8f56..c3dc760 100644 --- a/blastradius/server/static/css/style.css +++ b/blastradius/server/static/css/style.css @@ -135,3 +135,74 @@ g.node text { font-family: 'consolas', 'monaco', 'fixed-width'; font-size: 8px; } + +.navbar-nav>li { + padding-left: 6px; +} + +.navbar-brand { + font-family: 'courier new'; +} + +body { + font-family: "Lato", sans-serif; +} +.sidenav { +height: 100%; +width: 0; +position: fixed; +z-index: 1; +top: 0; +right: 0; +background-color: #D3D3D3; + +transition: 0.5s; +padding-top: 60px; +color: #000; +overflow: auto; +} + +.sidenav a { +padding: 8px 8px 8px 32px; +text-decoration: none; +font-size: 25px; +color: #818181; +display: block; +transition: 0.3s; + +} + +.sidenav a:hover { +color: #f1f1f1; +} + +.square { +height: 10px; +width: 10px; + +} + +.sidenav .closebtn { + +position: absolute; +top: 60; +right: 20px; +font-size: 16px; +margin-right: 0px; +color: grey; +} + + +table, td { +/* /* position: absolute; */ +margin-top: 60; +margin-left: 20; +border: 1px solid black; +} + + +@media screen and (max-height: 450px) { +.sidenav {padding-top: 15px;} +.sidenav a {font-size: 18px;} +} + diff --git a/blastradius/server/static/example/demo-1/demo-1.json b/blastradius/server/static/example/demo-1/demo-1.json index acba36f..607e81a 100644 --- a/blastradius/server/static/example/demo-1/demo-1.json +++ b/blastradius/server/static/example/demo-1/demo-1.json @@ -1,193 +1,2450 @@ { + "edges": [ + { + "edge_type": 1, + "source": "[root] data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "edge_0", + "target": "[root] provider.template" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip1", + "svg_id": "edge_1", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip2", + "svg_id": "edge_2", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_3", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_4", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_5", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_6", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_7", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_8", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_9", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_10", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_11", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_12", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_13", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_14", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_listener.lb1-listener", + "svg_id": "edge_15", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool.lb1-pool", + "svg_id": "edge_16", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_17", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_18", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_19", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_20", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_21", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_22", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_23", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_24", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_25", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_26", + "target": "[root] var.ssh_public_key" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet1", + "svg_id": "edge_27", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet2", + "svg_id": "edge_28", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_29", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_30", + "target": "[root] var.vpc_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_31", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_32", + "target": "[root] var.zone1" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_33", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_34", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_35", + "target": "[root] var.zone2" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_36", + "target": "[root] var.zone2_cidr" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_37", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_38", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_39", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_40", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_41", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_42", + "target": "[root] output.FloatingIP-1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_43", + "target": "[root] output.FloatingIP-2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_44", + "target": "[root] output.LB-Hostname" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-1", + "svg_id": "edge_45", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-2", + "svg_id": "edge_46", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] output.LB-Hostname", + "svg_id": "edge_47", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_48", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_49", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_50", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_51", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_52", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm", + "svg_id": "edge_53", + "target": "[root] var.ibmcloud_region" + }, + { + "edge_type": 1, + "source": "[root] provider.template (close)", + "svg_id": "edge_54", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_55", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_56", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_57", + "target": "[root] provider.template (close)" + }, + { + "edge_type": 3, + "source": "[root] var.zone1", + "svg_id": "edge_58", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 3, + "source": "[root] var.zone2", + "svg_id": "edge_59", + "target": "[root] var.zone2_cidr" + } + ], "nodes": [ { - "simple_name": "aws_iam_role.default", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "base64_encode": false, + "gzip": false, + "id": "708834281", + "part": [ + { + "content": "#cloud-config\npackages:\n - nginx\n\n", + "content_type": "", + "filename": "", + "merge_type": "" + } + ], + "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" + }, + "schema_version": 0 + } + ], + "mode": "data", + "name": "cloud-init-apptier", + "provider": "provider.template", + "type": "template_cloudinit_config" + }, + "cluster": "root", + "definition": "", "group": 20000, + "label": "[root] data.template_cloudinit_config.cloud-init-apptier", + "module": "root", + "modules": [ + "root" + ], + "plan": "data-source", + "resource_name": "cloud-init-apptier", + "simple_name": "data.template_cloudinit_config.cloud-init-apptier", "svg_id": "node_0", - "label": "[root] aws_iam_role.default", - "type": "aws_iam_role", - "resource_name": "default", - "def": { - "name": "terraform_lambda_alexa_example", - "assume_role_policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}" - } + "type": "template_cloudinit_config" }, { - "simple_name": "aws_iam_role_policy.default", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "address": "52.116.132.120", + "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "name": "fip4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip4", + "resource_status": "available", + "status": "available", + "target": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", + "timeouts": null, + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_instance.instance1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "floatingip1", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip4", + "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" + }, "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "fip1", + "timeouts": null + }, + "after_unknown": { + "address": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "target": true, + "zone": true + }, + "before": null + }, + "mode": "managed", + "name": "floatingip1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "name": "fip1", + "timeouts": null + } + }, + "resource_name": "floatingip1", + "simple_name": "ibm_is_floating_ip.floatingip1", "svg_id": "node_1", - "label": "[root] aws_iam_role_policy.default", - "type": "aws_iam_role_policy", - "resource_name": "default", - "def": { - "name": "terraform_lambda_alexa_example", - "role": "${aws_iam_role.default.id}", - "policy": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ],\n \"Resource\": \"*\"\n }\n ]\n}" - } + "type": "ibm_is_floating_ip" }, { - "simple_name": "aws_lambda_function.default", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "address": "169.47.92.133", + "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "name": "fip5", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip5", + "resource_status": "available", + "status": "available", + "target": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", + "timeouts": null, + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_instance.instance2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "floatingip2", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip5", + "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" + }, "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip2", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "fip2", + "timeouts": null + }, + "after_unknown": { + "address": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "target": true, + "zone": true + }, + "before": null + }, + "mode": "managed", + "name": "floatingip2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "name": "fip2", + "timeouts": null + } + }, + "resource_name": "floatingip2", + "simple_name": "ibm_is_floating_ip.floatingip2", "svg_id": "node_2", - "label": "[root] aws_lambda_function.default", - "type": "aws_lambda_function", - "resource_name": "default", - "def": { - "filename": "lambda_function.zip", - "source_code_hash": "${base64sha256(file(\"lambda_function.zip\"))}", - "function_name": "terraform_lambda_alexa_example", - "role": "${aws_iam_role.default.arn}", - "handler": "lambda_function.lambda_handler", - "runtime": "python2.7" - } - }, - { - "simple_name": "aws_lambda_permission.default", - "definition": {}, + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "boot_volume": [ + { + "encryption": "", + "iops": 3000, + "name": "volume-attachment", + "profile": "general-purpose", + "size": 100 + } + ], + "generation": null, + "gpu": [], + "id": "0717_c94d2de2-9ae0-43ba-854a-50ce878742da", + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "memory": 4, + "name": "instance4", + "network_interfaces": [], + "primary_network_interface": [ + { + "id": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", + "name": "promotion-proton-semicolon-taking-unworldly-washout", + "port_speed": 0, + "primary_ipv4_address": "172.16.1.5", + "security_groups": [ + "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" + ], + "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" + } + ], + "profile": "cx2-2x4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::instance:0717_c94d2de2-9ae0-43ba-854a-50ce878742da", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "instance4", + "resource_status": "running", + "status": "running", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "vcpu": [ + { + "architecture": "amd64", + "count": 2 + } + ], + "volume_attachments": [ + { + "id": "0717-8c414447-bdb1-40ec-9d2c-07c3505acc75", + "name": "volume-attachment", + "volume_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-4966cffa-6483-11ea-97f2-feff0b334b12", + "volume_id": "r006-4966cffa-6483-11ea-97f2-feff0b334b12", + "volume_name": "living-unrated-jawed-crummy-smuggling-mankind" + } + ], + "volumes": [], + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet1", + "ibm_is_vpc.vpc1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "instance1", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance4", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet1.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, "group": 20000, + "label": "[root] ibm_is_instance.instance1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance1", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance1", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-1" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": true, + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true, + "subnet": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "instance1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance1", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-1" + } + }, + "resource_name": "instance1", + "simple_name": "ibm_is_instance.instance1", "svg_id": "node_3", - "label": "[root] aws_lambda_permission.default", - "type": "aws_lambda_permission", - "resource_name": "default", - "def": { - "statement_id": "AllowExecutionFromAlexa", - "action": "lambda:InvokeFunction", - "function_name": "${aws_lambda_function.default.function_name}", - "principal": "alexa-appkit.amazon.com" - } + "type": "ibm_is_instance" }, { - "simple_name": "provider.aws", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "boot_volume": [ + { + "encryption": "", + "iops": 3000, + "name": "volume-attachment", + "profile": "general-purpose", + "size": 100 + } + ], + "generation": null, + "gpu": [], + "id": "0727_ce10c7f4-6795-4b79-ae26-49b1f8cbd024", + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "memory": 4, + "name": "instance5", + "network_interfaces": [], + "primary_network_interface": [ + { + "id": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", + "name": "penny-collector-bling-scurvy-ravishing-gradation", + "port_speed": 0, + "primary_ipv4_address": "172.16.2.5", + "security_groups": [ + "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" + ], + "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + } + ], + "profile": "cx2-2x4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::instance:0727_ce10c7f4-6795-4b79-ae26-49b1f8cbd024", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "instance5", + "resource_status": "running", + "status": "running", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "vcpu": [ + { + "architecture": "amd64", + "count": 2 + } + ], + "volume_attachments": [ + { + "id": "0727-3a8e8f62-ba60-4d30-8296-9f921228782f", + "name": "volume-attachment", + "volume_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-49596fbb-6483-11ea-983f-feff0b0a4b07", + "volume_id": "r006-49596fbb-6483-11ea-983f-feff0b0a4b07", + "volume_name": "humorist-gratify-unfounded-scale-renter-strangely" + } + ], + "volumes": [], + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "instance2", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance5", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet2.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, "group": 20000, + "label": "[root] ibm_is_instance.instance2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance2", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance2", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-2" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": true, + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true, + "subnet": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "instance2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance2", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-2" + } + }, + "resource_name": "instance2", + "simple_name": "ibm_is_instance.instance2", "svg_id": "node_4", - "label": "[root] provider.aws", - "type": "provider", - "resource_name": "aws", - "def": [] + "type": "ibm_is_instance" }, { - "simple_name": "meta.count-boundary (count boundary fixup)", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "hostname": "f8983743-us-south.lb.appdomain.cloud", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb", + "operating_status": "online", + "private_ips": [ + "172.16.1.4", + "172.16.2.4" + ], + "public_ips": [ + "52.116.136.89", + "52.116.200.44" + ], + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3-lb", + "status": "active", + "subnets": [ + "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + ], + "timeouts": null, + "type": "public" + }, + "dependencies": [ + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1", + "provider": "provider.ibm", + "type": "ibm_is_lb" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}-lb", + "subnets": [ + "${ibm_is_subnet.subnet1.id}", + "${ibm_is_subnet.subnet2.id}" + ] + }, "group": 20000, + "label": "[root] ibm_is_lb.lb1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb.lb1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "vpc-fs2020-lab-lb", + "timeouts": null, + "type": "public" + }, + "after_unknown": { + "hostname": true, + "id": true, + "operating_status": true, + "private_ips": true, + "public_ips": true, + "resource_controller_url": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "status": true, + "subnets": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb", + "values": { + "name": "vpc-fs2020-lab-lb", + "timeouts": null, + "type": "public" + } + }, + "resource_name": "lb1", + "simple_name": "ibm_is_lb.lb1", "svg_id": "node_5", - "label": "[root] meta.count-boundary (count boundary fixup)", - "type": "meta", - "resource_name": "count-boundary", - "def": [] + "type": "ibm_is_lb" }, { - "simple_name": "output.aws_lambda_function_arn", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "certificate_instance": null, + "connection_limit": 0, + "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "port": 80, + "protocol": "http", + "status": "active", + "timeouts": null + }, + "dependencies": [ + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool", + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-listener", + "provider": "provider.ibm", + "type": "ibm_is_lb_listener" + }, + "cluster": "root", + "definition": { + "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", + "lb": "${ibm_is_lb.lb1.id}", + "port": "80", + "protocol": "http" + }, "group": 20000, + "label": "[root] ibm_is_lb_listener.lb1-listener", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_listener.lb1-listener", + "change": { + "actions": [ + "create" + ], + "after": { + "certificate_instance": null, + "connection_limit": null, + "port": 80, + "protocol": "http", + "timeouts": null + }, + "after_unknown": { + "default_pool": true, + "id": true, + "lb": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1-listener", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_listener", + "values": { + "certificate_instance": null, + "connection_limit": null, + "port": 80, + "protocol": "http", + "timeouts": null + } + }, + "resource_name": "lb1-listener", + "simple_name": "ibm_is_lb_listener.lb1-listener", "svg_id": "node_6", - "label": "[root] output.aws_lambda_function_arn", - "type": "output", - "resource_name": "aws_lambda_function_arn", - "def": [] + "type": "ibm_is_lb_listener" }, { - "simple_name": "provider.aws (close)", - "definition": {}, + "apply": { + "instances": [ + { + "attributes": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_port": 0, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "provisioning_status": "active", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "dependencies": [ + "ibm_is_lb.lb1", + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool" + }, + "cluster": "root", + "definition": { + "algorithm": "round_robin", + "health_delay": "5", + "health_monitor_url": "/", + "health_retries": "2", + "health_timeout": "2", + "health_type": "http", + "lb": "${ibm_is_lb.lb1.id}", + "name": "${var.vpc_name}-lb1-pool", + "protocol": "http" + }, "group": 20000, + "label": "[root] ibm_is_lb_pool.lb1-pool", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool.lb1-pool", + "change": { + "actions": [ + "create" + ], + "after": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "name": "vpc-fs2020-lab-lb1-pool", + "protocol": "http", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "after_unknown": { + "health_monitor_port": true, + "id": true, + "lb": true, + "provisioning_status": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1-pool", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool", + "values": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "name": "vpc-fs2020-lab-lb1-pool", + "protocol": "http", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + } + }, + "resource_name": "lb1-pool", + "simple_name": "ibm_is_lb_pool.lb1-pool", "svg_id": "node_7", - "label": "[root] provider.aws (close)", - "type": "provider", - "resource_name": "aws", - "def": [] + "type": "ibm_is_lb_pool" }, { - "simple_name": "var.aws_region", - "definition": {}, + "apply": { + "each": "list", + "instances": [ + { + "attributes": { + "health": "ok", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.1.5", + "timeouts": null, + "weight": 50 + }, + "dependencies": [ + "ibm_is_instance.instance1", + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool" + ], + "index_key": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool-member1", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" + }, "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", + "change": { + "actions": [ + "create" + ], + "after": { + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "lb": true, + "pool": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": null + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member1", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", "svg_id": "node_8", - "label": "[root] var.aws_region", - "type": "var", - "resource_name": "aws_region", - "def": { - "description": "The AWS region to create things in.", - "default": "us-east-1" - } + "type": "ibm_is_lb_pool_member" }, { - "simple_name": "root", - "definition": {}, + "apply": { + "each": "list", + "instances": [ + { + "attributes": { + "health": "ok", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-81ceccac-212d-491e-b386-d0ad57f53be7", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-81ceccac-212d-491e-b386-d0ad57f53be7", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.2.5", + "timeouts": null, + "weight": 50 + }, + "dependencies": [ + "ibm_is_instance.instance2", + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool" + ], + "index_key": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool-member2", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" + }, "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", + "change": { + "actions": [ + "create" + ], + "after": { + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "lb": true, + "pool": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": null + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member2", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", "svg_id": "node_9", - "label": "[root] root", - "type": "", - "resource_name": "", - "def": [] - } - ], - "edges": [ + "type": "ibm_is_lb_pool_member" + }, { - "target": "[root] provider.aws", - "svg_id": "edge_0", - "source": "[root] aws_iam_role.default" + "apply": { + "instances": [ + { + "attributes": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "dependencies": [ + "ibm_is_floating_ip.floatingip1", + "ibm_is_floating_ip.floatingip2", + "ibm_is_instance.instance1", + "ibm_is_instance.instance2", + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "22", + "port_min": "22" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "change": { + "actions": [ + "create" + ], + "after": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "after_unknown": { + "group": true, + "icmp": [], + "id": true, + "rule_id": true, + "tcp": [ + {} + ], + "udp": [] + }, + "before": null + }, + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_22", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "node_10", + "type": "ibm_is_security_group_rule" }, { - "target": "[root] aws_iam_role.default", - "svg_id": "edge_1", - "source": "[root] aws_iam_role_policy.default" + "apply": { + "instances": [ + { + "attributes": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "dependencies": [ + "ibm_is_floating_ip.floatingip1", + "ibm_is_floating_ip.floatingip2", + "ibm_is_instance.instance1", + "ibm_is_instance.instance2", + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "80", + "port_min": "80" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "change": { + "actions": [ + "create" + ], + "after": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "after_unknown": { + "group": true, + "icmp": [], + "id": true, + "rule_id": true, + "tcp": [ + {} + ], + "udp": [] + }, + "before": null + }, + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_80", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "node_11", + "type": "ibm_is_security_group_rule" }, { - "target": "[root] aws_iam_role.default", - "svg_id": "edge_2", - "source": "[root] aws_lambda_function.default" + "apply": { + "instances": [ + { + "attributes": { + "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", + "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "length": 4096, + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "ssh10", + "type": "rsa" + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "ssh1", + "provider": "provider.ibm", + "type": "ibm_is_ssh_key" + }, + "cluster": "root", + "definition": { + "name": "ssh10", + "public_key": "${var.ssh_public_key}" + }, + "group": 20000, + "label": "[root] ibm_is_ssh_key.ssh1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_ssh_key.ssh1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "ssh1", + "public_key": "" + }, + "after_unknown": { + "fingerprint": true, + "id": true, + "length": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "type": true + }, + "before": null + }, + "mode": "managed", + "name": "ssh1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_ssh_key", + "values": { + "name": "ssh1", + "public_key": "" + } + }, + "resource_name": "ssh1", + "simple_name": "ibm_is_ssh_key.ssh1", + "svg_id": "node_12", + "type": "ibm_is_ssh_key" }, { - "target": "[root] aws_lambda_function.default", - "svg_id": "edge_3", - "source": "[root] aws_lambda_permission.default" + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "ipv6_cidr_block": "", + "name": "subnet1", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet1", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "subnet1", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap1}" + ], + "ipv4_cidr_block": "${var.zone1_cidr}", + "name": "subnet1", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet1", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "name": "subnet1", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "name": "subnet1", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + } + }, + "resource_name": "subnet1", + "simple_name": "ibm_is_subnet.subnet1", + "svg_id": "node_13", + "type": "ibm_is_subnet" }, { - "target": "[root] aws_iam_role_policy.default", - "svg_id": "edge_4", - "source": "[root] meta.count-boundary (count boundary fixup)" + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "ipv6_cidr_block": "", + "name": "subnet2", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet2", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "subnet2", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap2}" + ], + "ipv4_cidr_block": "${var.zone2_cidr}", + "name": "subnet2", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet2", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "name": "subnet2", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-2" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "name": "subnet2", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-2" + } + }, + "resource_name": "subnet2", + "simple_name": "ibm_is_subnet.subnet2", + "svg_id": "node_14", + "type": "ibm_is_subnet" }, { - "target": "[root] aws_lambda_permission.default", - "svg_id": "edge_5", - "source": "[root] meta.count-boundary (count boundary fixup)" + "apply": { + "instances": [ + { + "attributes": { + "address_prefix_management": "auto", + "classic_access": false, + "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "is_default": null, + "name": "vpc-fs2020-lab3", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc1", + "provider": "provider.ibm", + "type": "ibm_is_vpc" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc.vpc1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.vpc1", + "change": { + "actions": [ + "create" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "vpc-fs2020-lab", + "tags": null, + "timeouts": null + }, + "after_unknown": { + "default_network_acl": true, + "default_security_group": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "vpc-fs2020-lab", + "tags": null, + "timeouts": null + } + }, + "resource_name": "vpc1", + "simple_name": "ibm_is_vpc.vpc1", + "svg_id": "node_15", + "type": "ibm_is_vpc" }, { - "target": "[root] output.aws_lambda_function_arn", - "svg_id": "edge_6", - "source": "[root] meta.count-boundary (count boundary fixup)" + "apply": { + "instances": [ + { + "attributes": { + "cidr": "172.16.1.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", + "name": "vpc-ap1", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc-ap1", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone1_cidr}", + "name": "vpc-ap1", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap1", + "change": { + "actions": [ + "create" + ], + "after": { + "cidr": "172.16.1.0/24", + "name": "vpc-ap1", + "zone": "us-south-1" + }, + "after_unknown": { + "has_subnets": true, + "id": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc-ap1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.1.0/24", + "name": "vpc-ap1", + "zone": "us-south-1" + } + }, + "resource_name": "vpc-ap1", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "node_16", + "type": "ibm_is_vpc_address_prefix" }, { - "target": "[root] aws_lambda_function.default", - "svg_id": "edge_7", - "source": "[root] output.aws_lambda_function_arn" + "apply": { + "instances": [ + { + "attributes": { + "cidr": "172.16.2.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", + "name": "vpc-ap2", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc-ap2", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone2_cidr}", + "name": "vpc-ap2", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap2", + "change": { + "actions": [ + "create" + ], + "after": { + "cidr": "172.16.2.0/24", + "name": "vpc-ap2", + "zone": "us-south-2" + }, + "after_unknown": { + "has_subnets": true, + "id": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc-ap2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.2.0/24", + "name": "vpc-ap2", + "zone": "us-south-2" + } + }, + "resource_name": "vpc-ap2", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "node_17", + "type": "ibm_is_vpc_address_prefix" }, { - "target": "[root] aws_iam_role_policy.default", - "svg_id": "edge_8", - "source": "[root] provider.aws (close)" + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", + "definition": { + "value": "${ibm_is_floating_ip.floatingip1.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-1", + "simple_name": "output.FloatingIP-1", + "svg_id": "node_18", + "type": "output" }, { - "target": "[root] aws_lambda_permission.default", - "svg_id": "edge_9", - "source": "[root] provider.aws (close)" + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", + "definition": { + "value": "${ibm_is_floating_ip.floatingip2.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-2", + "simple_name": "output.FloatingIP-2", + "svg_id": "node_19", + "type": "output" }, { - "target": "[root] var.aws_region", - "svg_id": "edge_10", - "source": "[root] provider.aws" + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", + "definition": { + "value": "http://${ibm_is_lb.lb1.hostname}" + }, + "group": 20000, + "label": "[root] output.LB-Hostname", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "LB-Hostname", + "simple_name": "output.LB-Hostname", + "svg_id": "node_20", + "type": "output" }, { - "target": "[root] meta.count-boundary (count boundary fixup)", - "svg_id": "edge_11", - "source": "[root] root" + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_21", + "type": "provider" }, { - "target": "[root] provider.aws (close)", - "svg_id": "edge_12", - "source": "[root] root" + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template", + "svg_id": "node_22", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] provider.ibm_var_", + "definition": { + "default": "us-south", + "description": "Preferred IBM Cloud region to use for your infrastructure" + }, + "group": 20000, + "label": "[root] var.ibmcloud_region", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ibmcloud_region", + "simple_name": "var.ibmcloud_region", + "svg_id": "node_23", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "description": "OS Image ID to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.image", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "image", + "simple_name": "var.image", + "svg_id": "node_24", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "cx2-2x4", + "description": "Instance profile to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.profile", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "profile", + "simple_name": "var.profile", + "svg_id": "node_25", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", + "definition": { + "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "description": "SSH Public Key contents to be used" + }, + "group": 20000, + "label": "[root] var.ssh_public_key", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ssh_public_key", + "simple_name": "var.ssh_public_key", + "svg_id": "node_26", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", + "definition": { + "default": "vpc-fs2020-lab3", + "description": "Name of your VPC" + }, + "group": 20000, + "label": "[root] var.vpc_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "vpc_name", + "simple_name": "var.vpc_name", + "svg_id": "node_27", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "us-south-1", + "description": "Define the 1st zone of the region" + }, + "group": 20000, + "label": "[root] var.zone1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1", + "simple_name": "var.zone1", + "svg_id": "node_28", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "172.16.1.0/24", + "description": "CIDR block to be used for zone 1" + }, + "group": 20000, + "label": "[root] var.zone1_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1_cidr", + "simple_name": "var.zone1_cidr", + "svg_id": "node_29", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "us-south-2", + "description": "Define the 2nd zone of the region" + }, + "group": 20000, + "label": "[root] var.zone2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2", + "simple_name": "var.zone2", + "svg_id": "node_30", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "172.16.2.0/24", + "description": "CIDR block to be used for zone 2" + }, + "group": 20000, + "label": "[root] var.zone2_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2_cidr", + "simple_name": "var.zone2_cidr", + "svg_id": "node_31", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_32", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_33", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template (close)", + "svg_id": "node_34", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_35", + "type": "" } ] } + diff --git a/blastradius/server/static/example/demo-1/demo-1.svg b/blastradius/server/static/example/demo-1/demo-1.svg index 30e4050..47af9a4 100644 --- a/blastradius/server/static/example/demo-1/demo-1.svg +++ b/blastradius/server/static/example/demo-1/demo-1.svg @@ -1,169 +1,669 @@ - - - + + %3 - - + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + -[root] aws_iam_role.default - -aws_iam_role - -default +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + +cloud-init-apptier - - -[root] provider.aws - -provider - -aws + + +[root] provider.template + +provider + +template - + -[root] aws_iam_role.default->[root] provider.aws - - +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + - + -[root] aws_iam_role_policy.default - -aws_iam_role_policy - -default +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + +instance1 - + -[root] aws_iam_role_policy.default->[root] aws_iam_role.default - - +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + - + -[root] aws_lambda_function.default - -aws_lambda_function - -default +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + +floatingip2 - - -[root] aws_lambda_function.default->[root] aws_iam_role.default - - + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + +instance2 - - -[root] aws_lambda_permission.default - -aws_lambda_permission - -default + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + - + -[root] aws_lambda_permission.default->[root] aws_lambda_function.default - - - - - -[root] var.aws_region - -var - -aws_region +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + - - -[root] provider.aws->[root] var.aws_region - - + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + +ssh1 - - -[root] meta.count-boundary (count boundary fixup) - -meta - -count-boundary - - + -[root] meta.count-boundary (count boundary fixup)->[root] aws_iam_role_policy.default - - +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + +subnet1 - + -[root] meta.count-boundary (count boundary fixup)->[root] aws_lambda_permission.default - - +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + - - -[root] output.aws_lambda_function_arn - -output - -aws_lambda_function_arn + + +[root] var.image + +var + +image - + -[root] meta.count-boundary (count boundary fixup)->[root] output.aws_lambda_function_arn - - +[root] ibm_is_instance.instance1->[root] var.image + + - - -[root] output.aws_lambda_function_arn->[root] aws_lambda_function.default - - + + +[root] var.profile + +var + +profile - - -[root] provider.aws (close) - -provider - -aws + + +[root] ibm_is_instance.instance1->[root] var.profile + + - + -[root] provider.aws (close)->[root] aws_iam_role_policy.default - - +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + - + -[root] provider.aws (close)->[root] aws_lambda_permission.default - - +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + - - -[root] root - -[root] root + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + - + -[root] root->[root] meta.count-boundary (count boundary fixup) - - +[root] ibm_is_instance.instance2->[root] var.image + + - + -[root] root->[root] provider.aws (close) - - +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + diff --git a/blastradius/server/static/example/demo-1/demonew-1.svg b/blastradius/server/static/example/demo-1/demonew-1.svg new file mode 100644 index 0000000..b847b20 --- /dev/null +++ b/blastradius/server/static/example/demo-1/demonew-1.svg @@ -0,0 +1,757 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + + + + +cloud-init-apptier + + + +[root] provider.template + +provider + + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + + ++ + + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + + ++ + + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + + ++ + + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + + ++ + + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + + ++ + + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + + ++ + + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + + ++ + + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + + ++ + + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + + ++ + + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + + ++ + + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + + ++ + + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/blastradius/server/static/example/demo-2/demo-2.json b/blastradius/server/static/example/demo-2/demo-2.json index e7cdfc6..b680bf8 100644 --- a/blastradius/server/static/example/demo-2/demo-2.json +++ b/blastradius/server/static/example/demo-2/demo-2.json @@ -1,457 +1,389 @@ { - "nodes": [ - { - "svg_id": "node_0", - "type": "digitalocean_domain", - "simple_name": "digitalocean_domain.mywebserver", - "resource_name": "mywebserver", - "definition": {}, - "group": 20000, - "label": "[root] digitalocean_domain.mywebserver", - "def": { - "name": "www.mywebserver.com", - "ip_address": "${digitalocean_droplet.mywebserver.ipv4_address}" - } - }, - { - "svg_id": "node_1", - "type": "digitalocean_droplet", - "simple_name": "digitalocean_droplet.mywebserver", - "resource_name": "mywebserver", - "definition": {}, - "group": 20000, - "label": "[root] digitalocean_droplet.mywebserver", - "def": { - "ssh_keys": [ - 12345678 - ], - "image": "${var.ubuntu}", - "region": "${var.do_ams3}", - "size": "512mb", - "private_networking": true, - "backups": true, - "ipv6": true, - "name": "mywebserver-ams3", - "provisioner": { - "remote-exec": { - "inline": [ - "export PATH=$PATH:/usr/bin", - "sudo apt-get update", - "sudo apt-get -y install nginx" - ], - "connection": { - "type": "ssh", - "private_key": "${file(\"~/.ssh/id_rsa\")}", - "user": "root", - "timeout": "2m" - } - } - } - } - }, - { - "svg_id": "node_2", - "type": "digitalocean_record", - "simple_name": "digitalocean_record.mywebserver", - "resource_name": "mywebserver", - "definition": {}, - "group": 20000, - "label": "[root] digitalocean_record.mywebserver", - "def": { - "domain": "${digitalocean_domain.mywebserver.name}", - "type": "A", - "name": "mywebserver", - "value": "${digitalocean_droplet.mywebserver.ipv4_address}" - } - }, - { - "svg_id": "node_3", - "type": "provider", - "simple_name": "provider.digitalocean", - "resource_name": "digitalocean", - "definition": {}, - "group": 20000, - "label": "[root] provider.digitalocean", - "def": [] - }, - { - "svg_id": "node_4", - "type": "var", - "simple_name": "var.do_ams3", - "resource_name": "do_ams3", - "definition": {}, - "group": 20000, - "label": "[root] var.do_ams3", - "def": { - "description": "Digital Ocean Amsterdam Data Center 3", - "default": "ams3" - } - }, - { - "svg_id": "node_5", - "type": "var", - "simple_name": "var.ubuntu", - "resource_name": "ubuntu", - "definition": {}, - "group": 20000, - "label": "[root] var.ubuntu", - "def": { - "description": "Default LTS", - "default": "ubuntu-16-04-x64" - } - }, - { - "svg_id": "node_6", - "type": "meta", - "simple_name": "meta.count-boundary (count boundary fixup)", - "resource_name": "count-boundary", - "definition": {}, - "group": 20000, - "label": "[root] meta.count-boundary (count boundary fixup)", - "def": [] - }, - { - "svg_id": "node_7", - "type": "output", - "simple_name": "output.Name", - "resource_name": "Name", - "definition": {}, - "group": 20000, - "label": "[root] output.Name", - "def": [] - }, - { - "svg_id": "node_8", - "type": "output", - "simple_name": "output.Public ip", - "resource_name": "Public", - "definition": {}, - "group": 20000, - "label": "[root] output.Public ip", - "def": [] - }, - { - "svg_id": "node_9", - "type": "var", - "simple_name": "var.centos", - "resource_name": "centos", - "definition": {}, - "group": 20000, - "label": "[root] var.centos", - "def": { - "description": "Default Centos", - "default": "centos-72-x64" - } - }, - { - "svg_id": "node_10", - "type": "var", - "simple_name": "var.coreos", - "resource_name": "coreos", - "definition": {}, - "group": 20000, - "label": "[root] var.coreos", - "def": { - "description": "Defaut Coreos", - "default": "coreos-899.17.0" - } - }, - { - "svg_id": "node_11", - "type": "var", - "simple_name": "var.do_ams2", - "resource_name": "do_ams2", - "definition": {}, - "group": 20000, - "label": "[root] var.do_ams2", - "def": { - "description": "Digital Ocean Amsterdam Data Center 2", - "default": "ams2" - } - }, - { - "svg_id": "node_12", - "type": "var", - "simple_name": "var.do_blr1", - "resource_name": "do_blr1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_blr1", - "def": { - "description": "Digital Ocean Bangalore Data Center 1", - "default": "blr1" - } - }, - { - "svg_id": "node_13", - "type": "var", - "simple_name": "var.do_fra1", - "resource_name": "do_fra1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_fra1", - "def": { - "description": "Digital Ocean Frankfurt Data Center 1", - "default": "fra1" - } - }, - { - "svg_id": "node_14", - "type": "var", - "simple_name": "var.do_lon1", - "resource_name": "do_lon1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_lon1", - "def": { - "description": "Digital Ocean London Data Center 1", - "default": "lon1" - } - }, - { - "svg_id": "node_15", - "type": "var", - "simple_name": "var.do_nyc1", - "resource_name": "do_nyc1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_nyc1", - "def": { - "description": "Digital Ocean New York Data Center 1", - "default": "nyc1" - } - }, - { - "svg_id": "node_16", - "type": "var", - "simple_name": "var.do_nyc2", - "resource_name": "do_nyc2", - "definition": {}, - "group": 20000, - "label": "[root] var.do_nyc2", - "def": { - "description": "Digital Ocean New York Data Center 2", - "default": "nyc2" - } - }, - { - "svg_id": "node_17", - "type": "var", - "simple_name": "var.do_nyc3", - "resource_name": "do_nyc3", - "definition": {}, - "group": 20000, - "label": "[root] var.do_nyc3", - "def": { - "description": "Digital Ocean New York Data Center 3", - "default": "nyc3" - } - }, - { - "svg_id": "node_18", - "type": "var", - "simple_name": "var.do_sfo1", - "resource_name": "do_sfo1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_sfo1", - "def": { - "description": "Digital Ocean San Francisco Data Center 1", - "default": "sfo1" - } - }, - { - "svg_id": "node_19", - "type": "var", - "simple_name": "var.do_sgp1", - "resource_name": "do_sgp1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_sgp1", - "def": { - "description": "Digital Ocean Singapore Data Center 1", - "default": "sgp1" - } - }, - { - "svg_id": "node_20", - "type": "var", - "simple_name": "var.do_tor1", - "resource_name": "do_tor1", - "definition": {}, - "group": 20000, - "label": "[root] var.do_tor1", - "def": { - "description": "Digital Ocean Toronto Datacenter 1", - "default": "tor1" - } - }, - { - "svg_id": "node_21", - "type": "provider", - "simple_name": "provider.digitalocean (close)", - "resource_name": "digitalocean", - "definition": {}, - "group": 20000, - "label": "[root] provider.digitalocean (close)", - "def": [] - }, - { - "svg_id": "node_22", - "type": "provisioner", - "simple_name": "provisioner.remote-exec (close)", - "resource_name": "remote-exec", - "definition": {}, - "group": 20000, - "label": "[root] provisioner.remote-exec (close)", - "def": [] - }, - { - "svg_id": "node_23", - "type": "", - "simple_name": "root", - "resource_name": "", - "definition": {}, - "group": 20000, - "label": "[root] root", - "def": [] - } - ], "edges": [ { + "edge_type": 1, + "source": "[root] ibm_container_vpc_cluster.k8s_cluster", "svg_id": "edge_0", - "source": "[root] digitalocean_domain.mywebserver", - "target": "[root] digitalocean_droplet.mywebserver" + "target": "[root] provider.ibm" }, { + "edge_type": 1, + "source": "[root] ibm_container_vpc_cluster.k8s_cluster", "svg_id": "edge_1", - "source": "[root] digitalocean_droplet.mywebserver", - "target": "[root] provider.digitalocean" + "target": "[root] var.subnets" }, { + "edge_type": 2, + "source": "[root] ibm_container_vpc_cluster.k8s_cluster", "svg_id": "edge_2", - "source": "[root] digitalocean_droplet.mywebserver", - "target": "[root] var.do_ams3" + "target": "[root] var.vpc" }, { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_3", - "source": "[root] digitalocean_droplet.mywebserver", - "target": "[root] var.ubuntu" + "target": "[root] ibm_container_vpc_cluster.k8s_cluster" }, { + "edge_type": 1, + "source": "[root] provider.ibm (close)", "svg_id": "edge_4", - "source": "[root] digitalocean_record.mywebserver", - "target": "[root] digitalocean_domain.mywebserver" + "target": "[root] ibm_container_vpc_cluster.k8s_cluster" }, { + "edge_type": 1, + "source": "[root] root", "svg_id": "edge_5", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] digitalocean_record.mywebserver" + "target": "[root] meta.count-boundary (EachMode fixup)" }, { + "edge_type": 1, + "source": "[root] root", "svg_id": "edge_6", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] output.Name" + "target": "[root] provider.ibm (close)" }, { + "edge_type": 3, + "source": "[root] var.subnets", "svg_id": "edge_7", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] output.Public ip" - }, - { - "svg_id": "edge_8", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.centos" - }, - { - "svg_id": "edge_9", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.coreos" - }, - { - "svg_id": "edge_10", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_ams2" - }, - { - "svg_id": "edge_11", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_blr1" - }, - { - "svg_id": "edge_12", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_fra1" - }, - { - "svg_id": "edge_13", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_lon1" - }, - { - "svg_id": "edge_14", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_nyc1" - }, - { - "svg_id": "edge_15", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_nyc2" - }, - { - "svg_id": "edge_16", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_nyc3" - }, - { - "svg_id": "edge_17", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_sfo1" - }, - { - "svg_id": "edge_18", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_sgp1" - }, - { - "svg_id": "edge_19", - "source": "[root] meta.count-boundary (count boundary fixup)", - "target": "[root] var.do_tor1" - }, - { - "svg_id": "edge_20", - "source": "[root] output.Name", - "target": "[root] digitalocean_droplet.mywebserver" - }, + "target": "[root] var.vpc" + } + ], + "nodes": [ { - "svg_id": "edge_21", - "source": "[root] output.Public ip", - "target": "[root] digitalocean_droplet.mywebserver" + "apply": "not yet applied", + "cluster": "root", + "definition": { + "dynamic": { + "zones": { + "content": { + "name": "${zones.key}", + "subnet_id": "${zones.value}" + }, + "for_each": "${var.subnets}" + } + }, + "flavor": "c4.16x4", + "kube_version": "1.17", + "name": "k8s", + "resource_group_id": "dae36a8eba174edd9ca57b531d50495e", + "vpc_id": "${var.vpc}", + "wait_till": "OneWorkerNodeReady", + "worker_count": "3" + }, + "group": 20000, + "label": "[root] ibm_container_vpc_cluster.k8s_cluster", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_container_vpc_cluster.k8s_cluster", + "change": { + "actions": [ + "delete", + "create" + ], + "after": { + "disable_public_service_endpoint": false, + "flavor": "c4.16x4", + "kube_version": "1.17", + "name": "k8s", + "pod_subnet": "172.30.0.0/16", + "resource_group_id": "dae36a8eba174edd9ca57b531d50495e", + "service_subnet": "172.21.0.0/16", + "timeouts": null, + "vpc_id": "d9f1c638-2307-4ed9-a81f-f4e5a9548c3d", + "wait_till": "OneWorkerNodeReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1", + "subnet_id": "72d58212-b4ce-4a61-8a79-1cf392db3a32" + }, + { + "name": "us-south-2", + "subnet_id": "9e35de54-7550-476a-919d-992826487379" + }, + { + "name": "us-south-3", + "subnet_id": "4c1b0db5-a8be-44bd-a148-0cf0a7a80ba2" + } + ] + }, + "after_unknown": { + "albs": true, + "crn": true, + "id": true, + "ingress_hostname": true, + "ingress_secret": true, + "master_status": true, + "master_url": true, + "private_service_endpoint_url": true, + "public_service_endpoint_url": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "state": true, + "tags": true, + "zones": [ + {}, + {}, + {} + ] + }, + "before": { + "albs": [ + { + "alb_type": "private", + "disable_deployment": false, + "enable": false, + "id": "private-crbpufifid010jaeht0mdg-alb1", + "load_balancer_hostname": "", + "name": "", + "resize": false, + "state": "disabled" + }, + { + "alb_type": "private", + "disable_deployment": false, + "enable": false, + "id": "private-crbpufifid010jaeht0mdg-alb2", + "load_balancer_hostname": "", + "name": "", + "resize": false, + "state": "disabled" + }, + { + "alb_type": "private", + "disable_deployment": false, + "enable": false, + "id": "private-crbpufifid010jaeht0mdg-alb3", + "load_balancer_hostname": "", + "name": "", + "resize": false, + "state": "disabled" + }, + { + "alb_type": "public", + "disable_deployment": false, + "enable": true, + "id": "public-crbpufifid010jaeht0mdg-alb1", + "load_balancer_hostname": "561d8e10-us-south.lb.appdomain.cloud", + "name": "", + "resize": false, + "state": "enabled" + }, + { + "alb_type": "public", + "disable_deployment": false, + "enable": true, + "id": "public-crbpufifid010jaeht0mdg-alb2", + "load_balancer_hostname": "561d8e10-us-south.lb.appdomain.cloud", + "name": "", + "resize": false, + "state": "enabled" + }, + { + "alb_type": "public", + "disable_deployment": false, + "enable": true, + "id": "public-crbpufifid010jaeht0mdg-alb3", + "load_balancer_hostname": "561d8e10-us-south.lb.appdomain.cloud", + "name": "", + "resize": false, + "state": "enabled" + } + ], + "crn": "crn:v1:bluemix:public:containers-kubernetes:us-south:a/96fe4b4beb8947bf85223e69dab47878:bpufifid010jaeht0mdg::", + "disable_public_service_endpoint": false, + "flavor": "c2.2x4", + "id": "bpufifid010jaeht0mdg", + "ingress_hostname": "k8s-456598-64069624244c88ba447586f6a1eede78-0000.us-south.containers.appdomain.cloud", + "ingress_secret": "k8s-456598-64069624244c88ba447586f6a1eede78-0000", + "kube_version": "1.17.4", + "master_status": "Ready", + "master_url": "https://c3.us-south.containers.cloud.ibm.com:28319", + "name": "k8s", + "pod_subnet": "172.30.0.0/16", + "private_service_endpoint_url": "https://c3.private.us-south.containers.cloud.ibm.com:28319", + "public_service_endpoint_url": "https://c3.us-south.containers.cloud.ibm.com:28319", + "resource_controller_url": "https://cloud.ibm.com/kubernetes/clusters", + "resource_crn": "crn:v1:bluemix:public:containers-kubernetes:us-south:a/96fe4b4beb8947bf85223e69dab47878:bpufifid010jaeht0mdg::", + "resource_group_id": "dae36a8eba174edd9ca57b531d50495e", + "resource_group_name": "Default", + "resource_name": "k8s", + "resource_status": "normal", + "service_subnet": "172.21.0.0/16", + "state": "normal", + "tags": [], + "timeouts": null, + "vpc_id": "d9f1c638-2307-4ed9-a81f-f4e5a9548c3d", + "wait_till": "OneWorkerNodeReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1", + "subnet_id": "72d58212-b4ce-4a61-8a79-1cf392db3a32" + }, + { + "name": "us-south-2", + "subnet_id": "9e35de54-7550-476a-919d-992826487379" + }, + { + "name": "us-south-3", + "subnet_id": "4c1b0db5-a8be-44bd-a148-0cf0a7a80ba2" + } + ] + } + }, + "mode": "managed", + "name": "k8s_cluster", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_container_vpc_cluster", + "values": { + "disable_public_service_endpoint": false, + "flavor": "c4.16x4", + "kube_version": "1.17", + "name": "k8s", + "pod_subnet": "172.30.0.0/16", + "resource_group_id": "dae36a8eba174edd9ca57b531d50495e", + "service_subnet": "172.21.0.0/16", + "timeouts": null, + "vpc_id": "d9f1c638-2307-4ed9-a81f-f4e5a9548c3d", + "wait_till": "OneWorkerNodeReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1", + "subnet_id": "72d58212-b4ce-4a61-8a79-1cf392db3a32" + }, + { + "name": "us-south-2", + "subnet_id": "9e35de54-7550-476a-919d-992826487379" + }, + { + "name": "us-south-3", + "subnet_id": "4c1b0db5-a8be-44bd-a148-0cf0a7a80ba2" + } + ] + } + }, + "resource_name": "k8s_cluster", + "simple_name": "ibm_container_vpc_cluster.k8s_cluster", + "svg_id": "node_0", + "type": "ibm_container_vpc_cluster" }, { - "svg_id": "edge_22", - "source": "[root] provider.digitalocean (close)", - "target": "[root] digitalocean_record.mywebserver" + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_1", + "type": "provider" + }, + { + "apply": "not yet applied", + "cluster": "cluster[root] ibm_container_vpc_cluster.k8s_cluster_var_", + "definition": { + "default": { + "us-south-1": "72d58212-b4ce-4a61-8a79-1cf392db3a32", + "us-south-2": "9e35de54-7550-476a-919d-992826487379", + "us-south-3": "4c1b0db5-a8be-44bd-a148-0cf0a7a80ba2" + }, + "description": "List of public subnets mapped with their zone", + "type": "${map(string)}" + }, + "group": 20000, + "label": "[root] var.subnets", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "subnets", + "simple_name": "var.subnets", + "svg_id": "node_2", + "type": "var" }, { - "svg_id": "edge_23", - "source": "[root] provisioner.remote-exec (close)", - "target": "[root] digitalocean_droplet.mywebserver" + "apply": "not yet applied", + "cluster": "cluster[root] ibm_container_vpc_cluster.k8s_cluster_var_", + "definition": { + "default": "d9f1c638-2307-4ed9-a81f-f4e5a9548c3d", + "description": "ID of VPC to put nodes into", + "type": "${string}" + }, + "group": 20000, + "label": "[root] var.vpc", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "vpc", + "simple_name": "var.vpc", + "svg_id": "node_3", + "type": "var" }, { - "svg_id": "edge_24", - "source": "[root] root", - "target": "[root] meta.count-boundary (count boundary fixup)" + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_4", + "type": "meta" }, { - "svg_id": "edge_25", - "source": "[root] root", - "target": "[root] provider.digitalocean (close)" + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_5", + "type": "provider" }, { - "svg_id": "edge_26", - "source": "[root] root", - "target": "[root] provisioner.remote-exec (close)" + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_6", + "type": "" } ] } diff --git a/blastradius/server/static/example/demo-2/demo-2.svg b/blastradius/server/static/example/demo-2/demo-2.svg index 4b8fb8a..34a7664 100644 --- a/blastradius/server/static/example/demo-2/demo-2.svg +++ b/blastradius/server/static/example/demo-2/demo-2.svg @@ -1,365 +1,111 @@ - - - + + %3 - - + + +cluster[root] ibm_container_vpc_cluster.k8s_cluster_var_ + + -[root] digitalocean_domain.mywebserver - -digitalocean_domain - -mywebserver +[root] ibm_container_vpc_cluster.k8s_cluster + +ibm_container_vpc_cluster + +k8s_cluster - + -[root] digitalocean_droplet.mywebserver - -digitalocean_droplet - -mywebserver +[root] provider.ibm + +provider + +ibm - + -[root] digitalocean_domain.mywebserver->[root] digitalocean_droplet.mywebserver - - +[root] ibm_container_vpc_cluster.k8s_cluster->[root] provider.ibm + + - - -[root] provider.digitalocean - -provider - -digitalocean + + +[root] var.subnets + +var + +subnets - + -[root] digitalocean_droplet.mywebserver->[root] provider.digitalocean - - +[root] ibm_container_vpc_cluster.k8s_cluster->[root] var.subnets + + - + -[root] var.do_ams3 - -var - -do_ams3 - - - -[root] digitalocean_droplet.mywebserver->[root] var.do_ams3 - - - - - -[root] var.ubuntu - -var - -ubuntu +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary - + -[root] digitalocean_droplet.mywebserver->[root] var.ubuntu - - +[root] meta.count-boundary (EachMode fixup)->[root] ibm_container_vpc_cluster.k8s_cluster + + - - -[root] digitalocean_record.mywebserver - -digitalocean_record - -mywebserver + + +[root] provider.ibm (close) + +provider + +ibm - + -[root] digitalocean_record.mywebserver->[root] digitalocean_domain.mywebserver - - +[root] provider.ibm (close)->[root] ibm_container_vpc_cluster.k8s_cluster + + - + -[root] meta.count-boundary (count boundary fixup) - -meta - -count-boundary +[root] root + +[root] root - + -[root] meta.count-boundary (count boundary fixup)->[root] digitalocean_record.mywebserver - - - - - -[root] output.Name - -output - -Name +[root] root->[root] meta.count-boundary (EachMode fixup) + + - + -[root] meta.count-boundary (count boundary fixup)->[root] output.Name - - +[root] root->[root] provider.ibm (close) + + - - -[root] output.Public ip - -output - -Public + + +[root] var.vpc + +var + +vpc - + -[root] meta.count-boundary (count boundary fixup)->[root] output.Public ip - - - - - -[root] var.centos - -var - -centos - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.centos - - - - - -[root] var.coreos - -var - -coreos - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.coreos - - - - - -[root] var.do_ams2 - -var - -do_ams2 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_ams2 - - - - - -[root] var.do_blr1 - -var - -do_blr1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_blr1 - - - - - -[root] var.do_fra1 - -var - -do_fra1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_fra1 - - - - - -[root] var.do_lon1 - -var - -do_lon1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_lon1 - - - - - -[root] var.do_nyc1 - -var - -do_nyc1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_nyc1 - - - - - -[root] var.do_nyc2 - -var - -do_nyc2 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_nyc2 - - - - - -[root] var.do_nyc3 - -var - -do_nyc3 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_nyc3 - - - - - -[root] var.do_sfo1 - -var - -do_sfo1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_sfo1 - - - - - -[root] var.do_sgp1 - -var - -do_sgp1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_sgp1 - - - - - -[root] var.do_tor1 - -var - -do_tor1 - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.do_tor1 - - - - - -[root] output.Name->[root] digitalocean_droplet.mywebserver - - - - - -[root] output.Public ip->[root] digitalocean_droplet.mywebserver - - - - - -[root] provider.digitalocean (close) - -provider - -digitalocean - - - -[root] provider.digitalocean (close)->[root] digitalocean_record.mywebserver - - - - - -[root] provisioner.remote-exec (close) - -provisioner - -remote-exec - - - -[root] provisioner.remote-exec (close)->[root] digitalocean_droplet.mywebserver - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (count boundary fixup) - - - - - -[root] root->[root] provider.digitalocean (close) - - - - - -[root] root->[root] provisioner.remote-exec (close) - - +[root] var.subnets->[root] var.vpc + diff --git a/blastradius/server/static/example/demo-2/demonew-2.svg b/blastradius/server/static/example/demo-2/demonew-2.svg new file mode 100644 index 0000000..32cd77c --- /dev/null +++ b/blastradius/server/static/example/demo-2/demonew-2.svg @@ -0,0 +1,120 @@ + + + + + + +%3 + + +cluster[root] ibm_container_vpc_cluster.k8s_cluster_var_ + + + +[root] ibm_container_vpc_cluster.k8s_cluster + +ibm_container_vpc_cluster + + +-/+ + + +k8s_cluster + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_container_vpc_cluster.k8s_cluster->[root] provider.ibm + + + + + +[root] var.subnets + +var + + +subnets + + + +[root] ibm_container_vpc_cluster.k8s_cluster->[root] var.subnets + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_container_vpc_cluster.k8s_cluster + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_container_vpc_cluster.k8s_cluster + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] var.vpc + +var + + +vpc + + + +[root] var.subnets->[root] var.vpc + + + + diff --git a/blastradius/server/static/example/demo-3/demo-3.json b/blastradius/server/static/example/demo-3/demo-3.json index e8714b3..562a496 100644 --- a/blastradius/server/static/example/demo-3/demo-3.json +++ b/blastradius/server/static/example/demo-3/demo-3.json @@ -1,437 +1,267 @@ { - "nodes": [ + "edges": [ { - "simple_name": "aws_elb.web", - "definition": {}, - "svg_id": "node_0", - "group": 20000, - "label": "[root] aws_elb.web", - "resource_name": "web", - "type": "aws_elb", - "def": { - "name": "terraform-example-elb", - "subnets": [ - "${aws_subnet.default.id}" - ], - "security_groups": [ - "${aws_security_group.elb.id}" - ], - "instances": [ - "${aws_instance.web.id}" - ], - "listener": { - "instance_port": 80, - "instance_protocol": "http", - "lb_port": 80, - "lb_protocol": "http" - } - } + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_0", + "target": "[root] ibm_resource_instance.kp_instance" }, { - "simple_name": "aws_instance.web", - "definition": {}, - "svg_id": "node_1", - "group": 20000, - "label": "[root] aws_instance.web", - "resource_name": "web", - "type": "aws_instance", - "def": { - "connection": { - "user": "ubuntu" - }, - "instance_type": "t2.micro", - "ami": "${lookup(var.aws_amis, var.aws_region)}", - "key_name": "${aws_key_pair.auth.id}", - "vpc_security_group_ids": [ - "${aws_security_group.default.id}" - ], - "subnet_id": "${aws_subnet.default.id}", - "provisioner": { - "remote-exec": { - "inline": [ - "sudo apt-get -y update", - "sudo apt-get -y install nginx", - "sudo service nginx start" - ] - } - } - } + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_1", + "target": "[root] provider.ibm" }, { - "simple_name": "aws_internet_gateway.default", - "definition": {}, - "svg_id": "node_2", - "group": 20000, - "label": "[root] aws_internet_gateway.default", - "resource_name": "default", - "type": "aws_internet_gateway", - "def": { - "vpc_id": "${aws_vpc.default.id}" - } + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_2", + "target": "[root] ibm_kp_key.test" }, { - "simple_name": "aws_key_pair.auth", - "definition": {}, - "svg_id": "node_3", - "group": 20000, - "label": "[root] aws_key_pair.auth", - "resource_name": "auth", - "type": "aws_key_pair", - "def": { - "key_name": "${var.key_name}", - "public_key": "${file(var.public_key_path)}" - } + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_3", + "target": "[root] ibm_kp_key.test" }, { - "simple_name": "aws_route.internet_access", - "definition": {}, - "svg_id": "node_4", - "group": 20000, - "label": "[root] aws_route.internet_access", - "resource_name": "internet_access", - "type": "aws_route", - "def": { - "route_table_id": "${aws_vpc.default.main_route_table_id}", - "destination_cidr_block": "0.0.0.0/0", - "gateway_id": "${aws_internet_gateway.default.id}" - } + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_4", + "target": "[root] meta.count-boundary (EachMode fixup)" }, { - "simple_name": "aws_security_group.default", - "definition": {}, - "svg_id": "node_5", - "group": 20000, - "label": "[root] aws_security_group.default", - "resource_name": "default", - "type": "aws_security_group", - "def": { - "name": "terraform_example", - "description": "Used in the terraform", - "vpc_id": "${aws_vpc.default.id}", - "ingress": [ - { - "from_port": 22, - "to_port": 22, - "protocol": "tcp", - "cidr_blocks": [ - "0.0.0.0/0" - ] - }, - { - "from_port": 80, - "to_port": 80, - "protocol": "tcp", - "cidr_blocks": [ - "10.0.0.0/16" - ] - } - ], - "egress": { - "from_port": 0, - "to_port": 0, - "protocol": "-1", - "cidr_blocks": [ - "0.0.0.0/0" - ] - } - } - }, + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_5", + "target": "[root] provider.ibm (close)" + } + ], + "nodes": [ { - "simple_name": "aws_security_group.elb", - "definition": {}, - "svg_id": "node_6", + "apply": null, + "cluster": "root", + "definition": { + "key_name": "ckey1", + "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", + "standard_key": false + }, "group": 20000, - "label": "[root] aws_security_group.elb", - "resource_name": "elb", - "type": "aws_security_group", - "def": { - "name": "terraform_example_elb", - "description": "Used in the terraform", - "vpc_id": "${aws_vpc.default.id}", - "ingress": { - "from_port": 80, - "to_port": 80, - "protocol": "tcp", - "cidr_blocks": [ - "0.0.0.0/0" - ] + "label": "[root] ibm_kp_key.test", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_kp_key.test", + "change": { + "actions": [ + "create" + ], + "after": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "ckey1", + "standard_key": false, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_id": true, + "key_protect_id": true, + "payload": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true + }, + "before": null }, - "egress": { - "from_port": 0, - "to_port": 0, - "protocol": "-1", - "cidr_blocks": [ - "0.0.0.0/0" - ] + "mode": "managed", + "name": "test", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_kp_key", + "values": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "ckey1", + "standard_key": false, + "timeouts": null } - } - }, - { - "simple_name": "aws_subnet.default", - "definition": {}, - "svg_id": "node_7", - "group": 20000, - "label": "[root] aws_subnet.default", - "resource_name": "default", - "type": "aws_subnet", - "def": { - "vpc_id": "${aws_vpc.default.id}", - "cidr_block": "10.0.1.0/24", - "map_public_ip_on_launch": true - } - }, - { - "simple_name": "aws_vpc.default", - "definition": {}, - "svg_id": "node_8", - "group": 20000, - "label": "[root] aws_vpc.default", - "resource_name": "default", - "type": "aws_vpc", - "def": { - "cidr_block": "10.0.0.0/16" - } - }, - { - "simple_name": "provider.aws", - "definition": {}, - "svg_id": "node_9", - "group": 20000, - "label": "[root] provider.aws", - "resource_name": "aws", - "type": "provider", - "def": [] + }, + "resource_name": "test", + "simple_name": "ibm_kp_key.test", + "svg_id": "node_0", + "type": "ibm_kp_key" }, { - "simple_name": "var.aws_amis", - "definition": {}, - "svg_id": "node_10", + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-east:a/b9687c7011984685a20a8d25dfbea11b:98eebade-9330-4933-a67e-ff04c28a2fb0::", + "guid": "98eebade-9330-4933-a67e-ff04c28a2fb0", + "id": "crn:v1:bluemix:public:kms:us-east:a/b9687c7011984685a20a8d25dfbea11b:98eebade-9330-4933-a67e-ff04c28a2fb0::", + "location": "us-east", + "name": "tid", + "parameters": null, + "plan": "tiered-pricing", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:kms:us-east:a/b9687c7011984685a20a8d25dfbea11b:98eebade-9330-4933-a67e-ff04c28a2fb0::", + "resource_group_id": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "", + "resource_name": "tid", + "resource_status": "active", + "service": "kms", + "service_endpoints": null, + "status": "active", + "tags": null, + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "kp_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "definition": { + "location": "us-east", + "name": "tid", + "plan": "tiered-pricing", + "service": "kms" + }, "group": 20000, - "label": "[root] var.aws_amis", - "resource_name": "aws_amis", - "type": "var", - "def": { - "default": { - "eu-west-1": "ami-674cbc1e", - "us-east-1": "ami-1d4e7a66", - "us-west-1": "ami-969ab1f6", - "us-west-2": "ami-8803e0f0" + "label": "[root] ibm_resource_instance.kp_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.kp_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "us-east", + "name": "tid", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "kp_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "us-east", + "name": "tid", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "tags": null, + "timeouts": null } - } - }, - { - "simple_name": "var.key_name", - "definition": {}, - "svg_id": "node_11", - "group": 20000, - "label": "[root] var.key_name", - "resource_name": "key_name", - "type": "var", - "def": { - "description": "Desired name of AWS key pair" - } + }, + "resource_name": "kp_instance", + "simple_name": "ibm_resource_instance.kp_instance", + "svg_id": "node_1", + "type": "ibm_resource_instance" }, { - "simple_name": "var.public_key_path", - "definition": {}, - "svg_id": "node_12", + "apply": {}, + "cluster": "root", + "definition": { + "ibmcloud_api_key": "BEhDmmepkTNxWCToEuxiLugho-TIDAIRxAiSQOUcJof-" + }, "group": 20000, - "label": "[root] var.public_key_path", - "resource_name": "public_key_path", - "type": "var", - "def": { - "description": "Path to the SSH public key to be used for authentication.\nEnsure this keypair is added to your local SSH agent so provisioners can\nconnect.\n\nExample: ~/.ssh/terraform.pub" - } + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_2", + "type": "provider" }, { - "simple_name": "meta.count-boundary (count boundary fixup)", - "definition": {}, - "svg_id": "node_13", + "apply": {}, + "cluster": "root", + "definition": "", "group": 20000, - "label": "[root] meta.count-boundary (count boundary fixup)", + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, "resource_name": "count-boundary", - "type": "meta", - "def": [] - }, - { - "simple_name": "output.address", - "definition": {}, - "svg_id": "node_14", - "group": 20000, - "label": "[root] output.address", - "resource_name": "address", - "type": "output", - "def": [] - }, - { - "simple_name": "provider.aws (close)", - "definition": {}, - "svg_id": "node_15", - "group": 20000, - "label": "[root] provider.aws (close)", - "resource_name": "aws", - "type": "provider", - "def": [] - }, - { - "simple_name": "var.aws_region", - "definition": {}, - "svg_id": "node_16", - "group": 20000, - "label": "[root] var.aws_region", - "resource_name": "aws_region", - "type": "var", - "def": { - "description": "AWS region to launch servers.", - "default": "us-west-2" - } + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_3", + "type": "meta" }, { - "simple_name": "provisioner.remote-exec (close)", - "definition": {}, - "svg_id": "node_17", + "apply": {}, + "cluster": "root", + "definition": { + "ibmcloud_api_key": "BEhDmmepkTNxWCToEuxiLugho-TIDAIRxAiSQOUcJof-" + }, "group": 20000, - "label": "[root] provisioner.remote-exec (close)", - "resource_name": "remote-exec", - "type": "provisioner", - "def": [] + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_4", + "type": "provider" }, { - "simple_name": "root", - "definition": {}, - "svg_id": "node_18", + "apply": {}, + "cluster": "root", + "definition": "", "group": 20000, "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, "resource_name": "", - "type": "", - "def": [] - } - ], - "edges": [ - { - "target": "[root] aws_instance.web", - "source": "[root] aws_elb.web", - "svg_id": "edge_0" - }, - { - "target": "[root] aws_security_group.elb", - "source": "[root] aws_elb.web", - "svg_id": "edge_1" - }, - { - "target": "[root] aws_key_pair.auth", - "source": "[root] aws_instance.web", - "svg_id": "edge_2" - }, - { - "target": "[root] aws_security_group.default", - "source": "[root] aws_instance.web", - "svg_id": "edge_3" - }, - { - "target": "[root] aws_subnet.default", - "source": "[root] aws_instance.web", - "svg_id": "edge_4" - }, - { - "target": "[root] var.aws_amis", - "source": "[root] aws_instance.web", - "svg_id": "edge_5" - }, - { - "target": "[root] aws_vpc.default", - "source": "[root] aws_internet_gateway.default", - "svg_id": "edge_6" - }, - { - "target": "[root] provider.aws", - "source": "[root] aws_key_pair.auth", - "svg_id": "edge_7" - }, - { - "target": "[root] var.key_name", - "source": "[root] aws_key_pair.auth", - "svg_id": "edge_8" - }, - { - "target": "[root] var.public_key_path", - "source": "[root] aws_key_pair.auth", - "svg_id": "edge_9" - }, - { - "target": "[root] aws_internet_gateway.default", - "source": "[root] aws_route.internet_access", - "svg_id": "edge_10" - }, - { - "target": "[root] aws_vpc.default", - "source": "[root] aws_security_group.default", - "svg_id": "edge_11" - }, - { - "target": "[root] aws_vpc.default", - "source": "[root] aws_security_group.elb", - "svg_id": "edge_12" - }, - { - "target": "[root] aws_vpc.default", - "source": "[root] aws_subnet.default", - "svg_id": "edge_13" - }, - { - "target": "[root] provider.aws", - "source": "[root] aws_vpc.default", - "svg_id": "edge_14" - }, - { - "target": "[root] aws_route.internet_access", - "source": "[root] meta.count-boundary (count boundary fixup)", - "svg_id": "edge_15" - }, - { - "target": "[root] output.address", - "source": "[root] meta.count-boundary (count boundary fixup)", - "svg_id": "edge_16" - }, - { - "target": "[root] aws_elb.web", - "source": "[root] output.address", - "svg_id": "edge_17" - }, - { - "target": "[root] aws_elb.web", - "source": "[root] provider.aws (close)", - "svg_id": "edge_18" - }, - { - "target": "[root] aws_route.internet_access", - "source": "[root] provider.aws (close)", - "svg_id": "edge_19" - }, - { - "target": "[root] var.aws_region", - "source": "[root] provider.aws", - "svg_id": "edge_20" - }, - { - "target": "[root] aws_instance.web", - "source": "[root] provisioner.remote-exec (close)", - "svg_id": "edge_21" - }, - { - "target": "[root] meta.count-boundary (count boundary fixup)", - "source": "[root] root", - "svg_id": "edge_22" - }, - { - "target": "[root] provider.aws (close)", - "source": "[root] root", - "svg_id": "edge_23" - }, - { - "target": "[root] provisioner.remote-exec (close)", - "source": "[root] root", - "svg_id": "edge_24" + "simple_name": "root", + "svg_id": "node_5", + "type": "" } ] } diff --git a/blastradius/server/static/example/demo-3/demo-3.svg b/blastradius/server/static/example/demo-3/demo-3.svg index 7a68abe..1caca7a 100644 --- a/blastradius/server/static/example/demo-3/demo-3.svg +++ b/blastradius/server/static/example/demo-3/demo-3.svg @@ -1,313 +1,95 @@ - - - + + %3 - - + + -[root] aws_elb.web - -aws_elb - -web +[root] ibm_kp_key.test + +ibm_kp_key + +test - + -[root] aws_instance.web - -aws_instance - -web +[root] ibm_resource_instance.kp_instance + +ibm_resource_instance + +kp_instance - + -[root] aws_elb.web->[root] aws_instance.web - - +[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance + + - - -[root] aws_security_group.elb - -aws_security_group - -elb + + +[root] provider.ibm + +provider + +ibm - + -[root] aws_elb.web->[root] aws_security_group.elb - - +[root] ibm_resource_instance.kp_instance->[root] provider.ibm + + - + -[root] aws_key_pair.auth - -aws_key_pair - -auth +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary - + -[root] aws_instance.web->[root] aws_key_pair.auth - - - - - -[root] aws_security_group.default - -aws_security_group - -default - - - -[root] aws_instance.web->[root] aws_security_group.default - - - - - -[root] aws_subnet.default - -aws_subnet - -default - - - -[root] aws_instance.web->[root] aws_subnet.default - - - - - -[root] var.aws_amis - -var - -aws_amis - - - -[root] aws_instance.web->[root] var.aws_amis - - - - - -[root] aws_internet_gateway.default - -aws_internet_gateway - -default - - - -[root] aws_vpc.default - -aws_vpc - -default - - - -[root] aws_internet_gateway.default->[root] aws_vpc.default - - - - - -[root] provider.aws - -provider - -aws - - - -[root] aws_key_pair.auth->[root] provider.aws - - - - - -[root] var.key_name - -var - -key_name - - - -[root] aws_key_pair.auth->[root] var.key_name - - - - - -[root] var.public_key_path - -var - -public_key_path - - - -[root] aws_key_pair.auth->[root] var.public_key_path - - +[root] meta.count-boundary (EachMode fixup)->[root] ibm_kp_key.test + + - + -[root] aws_route.internet_access - -aws_route - -internet_access +[root] provider.ibm (close) + +provider + +ibm - - -[root] aws_route.internet_access->[root] aws_internet_gateway.default - - - - - -[root] aws_security_group.default->[root] aws_vpc.default - - - - - -[root] aws_security_group.elb->[root] aws_vpc.default - - - - - -[root] aws_subnet.default->[root] aws_vpc.default - - - - - -[root] aws_vpc.default->[root] provider.aws - - - - - -[root] var.aws_region - -var - -aws_region - - - -[root] provider.aws->[root] var.aws_region - - - - - -[root] meta.count-boundary (count boundary fixup) - -meta - -count-boundary - - - -[root] meta.count-boundary (count boundary fixup)->[root] aws_route.internet_access - - - - - -[root] output.address - -output - -address - - - -[root] meta.count-boundary (count boundary fixup)->[root] output.address - - - - - -[root] output.address->[root] aws_elb.web - - - - - -[root] provider.aws (close) - -provider - -aws - - - -[root] provider.aws (close)->[root] aws_elb.web - - - - - -[root] provider.aws (close)->[root] aws_route.internet_access - - - - - -[root] provisioner.remote-exec (close) - -provisioner - -remote-exec - - - -[root] provisioner.remote-exec (close)->[root] aws_instance.web - - + + +[root] provider.ibm (close)->[root] ibm_kp_key.test + + - + [root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (count boundary fixup) - - + +[root] root - - -[root] root->[root] provider.aws (close) - - + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + - - -[root] root->[root] provisioner.remote-exec (close) - - + + +[root] root->[root] provider.ibm (close) + + diff --git a/blastradius/server/static/example/demo-3/demonew-3.svg b/blastradius/server/static/example/demo-3/demonew-3.svg new file mode 100644 index 0000000..8e65231 --- /dev/null +++ b/blastradius/server/static/example/demo-3/demonew-3.svg @@ -0,0 +1,106 @@ + + + + + + +%3 + + + +[root] ibm_kp_key.test + +ibm_kp_key + + ++ + + +test + + + +[root] ibm_resource_instance.kp_instance + +ibm_resource_instance + + ++ + + +kp_instance + + + +[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_resource_instance.kp_instance->[root] provider.ibm + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_kp_key.test + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_kp_key.test + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + diff --git a/blastradius/server/static/js/blast-radius-ext.js b/blastradius/server/static/js/blast-radius-ext.js new file mode 100644 index 0000000..13f47ff --- /dev/null +++ b/blastradius/server/static/js/blast-radius-ext.js @@ -0,0 +1,718 @@ +// +// terraform-graph.js +// + +// enumerate the various kinds of edges that Blast Radius understands. +// only NORMAL and LAYOUT_SHOWN will show up in the , but all four +// will likely appear in the json representation. +var edge_types = { + NORMAL : 1, // what we talk about when we're talking about edges. + HIDDEN : 2, // these are normal edges, but aren't drawn. + LAYOUT_SHOWN : 3, // these edges are drawn, but aren't "real" edges + LAYOUT_HIDDEN : 4, // these edges are not drawn, aren't "real" edges, but inform layout. +} + +// Sometimes we have escaped newlines (\n) in json strings. we want
instead. +// FIXME: much better line wrapping is probably possible. +var replacer = function (key, value) { + if (typeof value == 'string') { + return value.replace(/\n/g, '
'); + } + return value; +} + +build_uri = function(url, params) { + url += '?' + for (var key in params) + url += key + '=' + params[key] + '&'; + return url.slice(0,-1); +} + +var to_list = function(obj) { + var lst = []; + for (var k in obj) + lst.push(obj[k]); + return lst; +} + +var Queue = function() { + this._oldestIndex = 1; + this._newestIndex = 1; + this._storage = {}; +} + +Queue.prototype.size = function() { + return this._newestIndex - this._oldestIndex; +}; + +Queue.prototype.enqueue = function(data) { + this._storage[this._newestIndex] = data; + this._newestIndex++; +}; + +Queue.prototype.dequeue = function() { + var oldestIndex = this._oldestIndex, + newestIndex = this._newestIndex, + deletedData; + + if (oldestIndex !== newestIndex) { + deletedData = this._storage[oldestIndex]; + delete this._storage[oldestIndex]; + this._oldestIndex++; + + return deletedData; + } +}; + +// Takes a unique selector, e.g. "#demo-1", and +// appends svg xml from svg_url, and takes graph +// info from json_url to highlight/annotate it. + +blastradiusnew = function (selector, svg_url, json_url,br_state) { + + // TODO: remove scale. + scale = null + + // mainly for d3-tips + class_selector = '.' + selector.slice(1,selector.length); + + + // we should have an object to keep track of state with, but if we + // don't, just fudge one. + if (! br_state) { + var br_state = {}; + } + + // if we haven't already got an entry in br_state to manage our + // state with, go ahead and create one. + if (! br_state[selector]) { + br_state[selector] = {}; + } + + var state = br_state[selector]; + var container = d3.select(selector); + + + // color assignments (resource_type : rgb) are stateful. If we use a new palette + // every time the a subgraph is selected, the color assignments would differ and + // become confusing. + var color = (state['color'] ? state['color'] : d3.scaleOrdinal(d3['schemeCategory20'])); + state['color'] = color; + + // console.log(color); + + // 1st pull down the svg, and append it to the DOM as a child + // of our selector. If added as , we wouldn't + // be able to manipulate x.svg with d3.js, or other DOM fns. + d3.xml(svg_url, function (error, xml) { + + d3.select(selector).selectAll("svg").remove(); + + container.node() + .appendChild(document.importNode(xml.documentElement, true)); + + // remove s in svg; graphviz leaves these here and they + // trigger useless tooltips. + d3.select(selector).selectAll('title').remove(); + + // remove any d3-tips we've left lying around + d3.selectAll(class_selector + '-d3-tip').remove(); + + // make sure the svg uses 100% of the viewport, so that pan/zoom works + // as expected and there's no clipping. + d3.select(selector + ' svg').attr('width', '100%').attr('height', '100%'); + + // Obtain the graph description. Doing this within the + // d3.xml success callback, to guaruntee the svg/xml + // has loaded. + + d3.json(json_url, function (error, data) { + var edges = data.edges; + var svg_nodes = []; + var nodes = {}; + data.nodes.forEach(function (node) { + if (!(node.type in resource_groups)) + console.log(node.type) + if (node.label == '[root] root') { // FIXME: w/ tf 0.11.2, resource_name not set by server. + node.resource_name = 'root'; + } + node.group = (node.type in resource_groups) ? resource_groups[node.type] : -1; + nodes[node['label']] = node; + svg_nodes.push(node); + }); + + // convenient to access edges by their source. + var edges_by_source = {} + for (var i in edges) { + if(edges[i].source in edges_by_source) + edges_by_source[edges[i].source].push(edges[i]); + else + edges_by_source[edges[i].source] = [edges[i]]; + } + + // convenient access to edges by their target. + var edges_by_target = {} + for (var i in edges) { + if(edges[i].target in edges_by_target) + edges_by_target[edges[i].target].push(edges[i]); + else + edges_by_target[edges[i].target] = [edges[i]]; + } + + var svg = container.select('svg'); + + if (scale != null) { + svg.attr('height', scale).attr('width', scale); + } + + + x=svg.selectAll('g.node'); + console.log('g.node') + + var render_plan = function(d) { + var plan_title = "plan info" + var ttip = ''; + ttip += title_html(d); + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + plan_title + '</span><br><br>'+(d.plan.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.plan, replacer, 2) + "</p><br>"+ '<hr style="background-color:black"/>') ; + ttip += child_html(d); + + + return ttip; + } + + var render_apply = function(d) { + var apply_title = "apply info" + var ttip = ''; + ttip += title_html(d); + if (d.apply == "not yet applied" ) + { + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>'+("<p class='explain'>" + "not yet applied" + "</p><br>"+ '<hr style="background-color:black"/>'); + + } + else { + if( d.apply == null || d.apply.instances[0] == null) + { + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>'+("<p class='explain'>" + "resource apply failed" + "</p><br>"+ '<hr style="background-color:black"/>'); + + } + else + { + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>'+(d.apply.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.apply, replacer, 2) + "</p><br>"+ '<hr style="background-color:black"/>'); + } + } + ttip += child_html(d); + + + return ttip; + } + + var render_tfstate = function(d) { + var title = "tf state info" + var ttip = ''; + ttip += title_html(d); + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + title + '</span><br><br>' +(d.definition.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.definition, replacer, 2) + "</p><br>"+ '<hr style="background-color:black"/>'); + ttip += child_html(d); + return ttip; + } + + var title_html = function(d) { + var node = d; + var title = [ '<div class="header">'] + var head = "resource name" + title[title.length] = '<span class="title" style="background:' + color("#ffbf00") + ';">' + head + '</span><br><br>'; + if (node.modules.length <= 1 && node.modules[0] == 'root') { + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + + } + else { + for (var i in node.modules) { + title[title.length] = '<span class="title" style="background: ' + color('(M) ' + node.modules[i]) + ';">' + node.modules[i] + '</span>'; + } + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + title[title.length] = '</div>' + return title.join(''); + } + + // returns <div> element representing node's title and module namespace. + // intended for use in an interactive searchbox. + var searchbox_listing = function(d) { + var node = d; + var title = [ '<div class="sbox-listings">'] + if (node.modules.length <= 1 && node.modules[0] == 'root') { + if (node.type) + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + else { + for (var i in node.modules) { + title[title.length] = '<span class="sbox-listing" style="background: ' + color('(M) ' + node.modules[i]) + ';">' + node.modules[i] + '</span>'; + } + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + title[title.length] = '</div>' + return title.join(''); + } + + // returns <span> elements representing a node's direct children + var child_html = function(d) { + var children = []; + var edges = edges_by_source[d.label]; + var foot = "child nodes"; + //console.log(edges); + children[children.length] = '<span class="title" style="background:' + color("#ffbf00") + ';">' + foot + '</span><br><br>'; + for (i in edges) { + edge = edges[i]; + if (edge.edge_type == edge_types.NORMAL || edge.edge_type == edge_types.HIDDEN) { + var node = nodes[edge.target]; + if (node.modules.length <= 1 && node.modules[0] == 'root') { + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.resource_name + '</span></br>'; + } + else { + for (var i in node.modules) { + children[children.length] = '<span class="dep" style="background: ' + color('(M) ' + node.modules[i]) + ';">' + node.modules[i] + '</span>'; + } + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.resource_name + '</span></br>'; + } + + } + } + return children.join(''); + } + + var get_downstream_nodes = function (node) { + var children = {}; + children[node.label] = node; + var visit_queue = new Queue(); + visit_queue.enqueue(node); + while (visit_queue.size() > 0 ) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_source[cur_node.label]; + for (var i in edges) { + if (edges[i].target in children) + continue; + var n = nodes[edges[i].target]; + children[n.label] = n; + visit_queue.enqueue(n); + } + } + return to_list(children); + } + + var get_upstream_nodes = function (node) { + var parents = {}; + parents[node.label] = node; + var visit_queue = new Queue(); + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_target[cur_node.label]; + for (var i in edges) { + if (edges[i].source in parents) + continue; + var n = nodes[edges[i].source]; + parents[n.label] = n; + visit_queue.enqueue(n); + } + } + return to_list(parents); + } + + var get_downstream_edges = function(node) { + var ret_edges = new Set(); + var children = new Set(); + var visit_queue = new Queue(); + + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_source[cur_node.label]; + for (var i in edges) { + e = edges[i]; + if (e in ret_edges || e.edge_type == edge_types.HIDDEN || e.edge_type == edge_types.LAYOUT_HIDDEN) + continue; + var n = nodes[edges[i].target]; + ret_edges.add(e); + children.add(n); + visit_queue.enqueue(n); + } + } + return Array.from(ret_edges); + } + + var get_upstream_edges = function(node) { + var ret_edges = new Set(); + var parents = new Set(); + var visit_queue = new Queue(); + + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_target[cur_node.label]; + for (var i in edges) { + e = edges[i]; + if (e in ret_edges || e.edge_type == edge_types.HIDDEN || e.edge_type == edge_types.LAYOUT_HIDDEN) + continue; + var n = nodes[edges[i].source]; + ret_edges.add(e); + parents.add(n); + visit_queue.enqueue(n); + } + } + return Array.from(ret_edges); + } + + // + // mouse event handling + // + // * 1st click (and mouseover): highlight downstream connections, only + tooltip + // * 2nd click: highlight upstream and downstream connections + no tooltip + // * 3rd click: return to normal (no-selection/highlights) + // + + var click_count = 0; + var sticky_node = null; + + // FIXME: these x,y,z-s pad out parameters I haven't looked up, + // FIXME: but don't seem to be necessary for display + var node_mousedown = function(d, x, y, z, no_tip_p) { + + if ( sticky_node == d && click_count == 1) { + + highlight(d, true, true); + click_count += 1; + } + else if (sticky_node == d && click_count == 2) { + unhighlight(d); + + sticky_node = null; + click_count = 0; + } + else { + if (sticky_node) { + unhighlight(sticky_node); + + } + sticky_node = d; + click_count = 1; + highlight(d, true, false); + } + } + + var plan_click = function(d) { + openNav() + + var renderInfo = render_plan(d); + $('div.test').html(renderInfo); + + } + + var tfstate_click = function(d) { + openNav() + + var renderInfo = render_tfstate(d); + $('div.test').html(renderInfo); + + } + + var apply_click = function(d) { + openNav() + + var renderInfo = render_apply(d); + $('div.test').html(renderInfo); + + } + + function openNav() { + document.getElementById("mySidenav").style.width = "350px"; + + } + + var highlight = function (d, downstream, upstream) { + + var highlight_nodes = []; + var highlight_edges = []; + + if (downstream) { + highlight_nodes = highlight_nodes.concat(get_downstream_nodes(d)); + highlight_edges = highlight_edges.concat(get_downstream_edges(d)); + } + + if (upstream) { + highlight_nodes = highlight_nodes.concat(get_upstream_nodes(d)); + highlight_edges = highlight_edges.concat(get_upstream_edges(d)); + } + + svg.selectAll('g.node') + .data(highlight_nodes, function (d) { return (d && d.svg_id) || d3.select(this).attr("id"); }) + .attr('opacity', 1.0) + .exit() + .attr('opacity', 0.2); + + svg.selectAll('g.edge') + .data(highlight_edges, function(d) { return d && d.svg_id || d3.select(this).attr("id"); }) + .attr('opacity', 1.0) + .exit() + .attr('opacity', 0.0); + } + + var unhighlight = function (d) { + svg.selectAll('g.node') + .attr('opacity', 1.0); + svg.selectAll('g.edge') + .attr('opacity', 1.0) + + } + + + node = svg.selectAll('g.node') + .data(svg_nodes, function (d) { + return (d && d.svg_id) || d3.select(this).attr("id"); + }) + + + node.attr('fill', function (d) { return color(d.group); }) + .select('polygon:nth-of-type(1)') + .on('click', node_mousedown) + .style('fill', (function (d) { + if (d) + return color(d.group); + + else + return '#000'; + })); + + + node.select('polygon:nth-of-type(2)') + .on('click',tfstate_click) + .style('fill', (function (d) { + if (d) + + return "#00CCFF"; + + else + return '#000'; + })); + + + node.attr('fill', function (d) { return color(d.group); }) + .select('polygon:nth-child(3n+4)') + .on('click',(function (d) { + + if (d.type == "var" || d.type == "provider" || d.type == "meta" || d.type == "output") + return ""; + + else + return plan_click(d); + + })) + .style('fill', (function (d) { + if (d) + { + if (d.type == "var" || d.type == "provider" || d.type == "meta" || d.type == "output") + + return "fff"; + else + return "#ffff00"; + + } + + else + return '#000'; + })); + + + node.select('polygon:nth-of-type(4)') + .on('click',apply_click) + .style('fill', (function (d) { + if (d) + { + if(d.apply == "not yet applied") + { + return "#808080"; + } + else if(d.apply == null || d.apply.instances[0] == null ) + { + return "#ff0000"; + } + else{ + return "#00ff40"; + } + } + else + return '#000'; + })); + + svg.selectAll('polygon') + .each(function(d, i) { + if (d != undefined) + return undefined; + sibling = this.nextElementSibling; + if (sibling) { + if(sibling.innerHTML.match(/\(M\)/)) { + this.setAttribute('fill', color(sibling.innerHTML)); + } + } + }); + + // hack to make mouse events and coloration work on the root node again. + var root = nodes['[root] root']; + svg.selectAll('g.node#' + root.svg_id) + .data(svg_nodes, function (d) { + return (d && d.svg_id) || d3.select(this).attr("id"); + }) + .select('polygon') + .attr('fill', function (d) { return color(d.group); }) + .style('fill', (function (d) { + if (d) + return color(d.group); + else + return '#000'; + })); + + // stub, in case we want to do something with edges on init. + svg.selectAll('g.edge') + .data(edges, function(d) { return d && d.svg_id || d3.select(this).attr("id"); }); + + // blast-radius --serve mode stuff. check for a zoom-in button as a proxy + // for whether other facilities will be available. + var refocus_btn = document.querySelector(selector + '-refocus'); + if (d3.select(selector + '-zoom-in')) { + var zin_btn = document.querySelector(selector + '-zoom-in'); + var zout_btn = document.querySelector(selector + '-zoom-out'); + // var refocus_btn = document.querySelector(selector + '-refocus'); + var download_btn = document.querySelector(selector + '-download') + var svg_el = document.querySelector(selector + ' svg'); + var panzoom = svgPanZoom(svg_el).disableDblClickZoom(); + + + console.log(state); + if (state['no_scroll_zoom'] == true) { + console.log('bang'); + panzoom.disableMouseWheelZoom(); + } + + var handle_zin = function(ev){ + ev.preventDefault(); + panzoom.zoomIn(); + } + zin_btn.addEventListener('click', handle_zin); + + var handle_zout = function(ev){ + ev.preventDefault(); + panzoom.zoomOut(); + } + zout_btn.addEventListener('click', handle_zout); + + var handle_refocus = function() { + console.log('handle_refocus', sticky_node) + if (sticky_node) { + + $(selector + ' svg').remove(); + clear_listeners(); + if (! state['params']) + state.params = {} + state.params.refocus = encodeURIComponent(sticky_node.label); + + svg_url = svg_url.split('?')[0]; + json_url = json_url.split('?')[0]; + + blastradiusnew(selector, build_uri(svg_url, state.params), build_uri(json_url, state.params), br_state); + } + } + + + // this feature is disabled for embedded images on static sites... + if (refocus_btn) { + console.log('refocus_btn.addEventListener'); + refocus_btn.addEventListener('click', handle_refocus); + } + + var handle_download = function() { + // svg extraction and download as data url borrowed from + // http://bl.ocks.org/curran/7cf9967028259ea032e8 + var svg_el = document.querySelector(selector + ' svg') + var svg_as_xml = (new XMLSerializer).serializeToString(svg_el); + var svg_data_url = "data:image/svg+xml," + encodeURIComponent(svg_as_xml); + var dl = document.createElement("a"); + document.body.appendChild(dl); + dl.setAttribute("href", svg_data_url); + dl.setAttribute("download", "blast-radius-new.svg"); + dl.click(); + } + download_btn.addEventListener('click', handle_download); + + var clear_listeners = function() { + zin_btn.removeEventListener('click', handle_zin); + zout_btn.removeEventListener('click', handle_zout); + refocus_btn.removeEventListener('click', handle_refocus); + download_btn.removeEventListener('click', handle_download); + panzoom = null; + } + + var render_searchbox_node = function(d) { + return searchbox_listing(d); + } + + var select_node = function(d) { + if (d === undefined || d.length == 0) { + return true; + } + // FIXME: these falses pad out parameters I haven't looked up, + // FIXME: but don't seem to be necessary for display + if (sticky_node) { + unhighlight(sticky_node); + sticky_node = null; + } + click_count = 0; + // console.log(d) + node_mousedown(nodes[d], false, false, false, true); + } + + if ( $(selector + '-search.selectized').length > 0 ) { + $(selector + '-search').selectize()[0].selectize.clear(); + $(selector + '-search').selectize()[0].selectize.clearOptions(); + for (var i in svg_nodes) { + + $(selector + '-search').selectize()[0].selectize.addOption(svg_nodes[i]); + } + if( state && state.params && state.params.refocus && state.params.refocus.length > 0 ) { + var n = state.params.refocus; + } + console.log(svg_nodes); + // because of scoping, we need to change the onChange callback to the new version + // of select_node(), and delete the old callback associations. + $(selector + '-search').selectize()[0].selectize.settings.onChange = select_node; + $(selector + '-search').selectize()[0].selectize.swapOnChange(); + } + else { + $(selector + '-search').selectize({ + valueField: 'label', + searchField: ['label'], + maxItems: 1, + create: false, + multiple: false, + maximumSelectionSize: 1, + onChange: select_node, + render: { + option: render_searchbox_node, + item : render_searchbox_node + }, + options: svg_nodes + }); + } + + // without this, selecting an item with <enter> will submit the form + // and force a page refresh. not the desired behavior. + // $(selector + '-search-form').submit(function(){return false;}); + + } // end if(interactive) + }); // end json success callback + }); // end svg scuccess callback + +} // end blastradius() \ No newline at end of file diff --git a/blastradius/server/static/js/blast-radius.js b/blastradius/server/static/js/blast-radius.js index 0f9a466..5f434d9 100644 --- a/blastradius/server/static/js/blast-radius.js +++ b/blastradius/server/static/js/blast-radius.js @@ -104,6 +104,8 @@ blastradius = function (selector, svg_url, json_url, br_state) { // be able to manipulate x.svg with d3.js, or other DOM fns. d3.xml(svg_url, function (error, xml) { + d3.select(selector).selectAll("svg").remove(); + container.node() .appendChild(document.importNode(xml.documentElement, true)); @@ -571,8 +573,6 @@ blastradius = function (selector, svg_url, json_url, br_state) { refocus_btn.removeEventListener('click', handle_refocus); download_btn.removeEventListener('click', handle_download); panzoom = null; - - // tip.hide(); } diff --git a/blastradius/server/templates/index.html b/blastradius/server/templates/index.html index f39e933..108a20b 100644 --- a/blastradius/server/templates/index.html +++ b/blastradius/server/templates/index.html @@ -1,153 +1,226 @@ <html> - <head> - <title>Blast Radius (Terraform Graph Tools) - - - - - - - - - - - - - - - - - - - - - - - - + +
+ - + blastradius('#graph', '/graph.svg', '/graph.json', br_state); + } + else if (id2.checked) { + blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); + } + } + function closeNav() { + document.getElementById("mySidenav").style.width = "0"; + } + \ No newline at end of file diff --git a/doc/blast-radius-demo.svg b/doc/blast-radius-demo.svg index 866e001..b57bb7c 100644 --- a/doc/blast-radius-demo.svg +++ b/doc/blast-radius-demo.svg @@ -1,306 +1,752 @@ - - + + - - - + - -aws_elb - -web + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +template_cloudinit_config + + + + +cloud-init-apptier + + + + + +provider + + +template + + + + + + + + + + + +ibm_is_floating_ip + + ++ + + +floatingip1 + + + + + +ibm_is_instance + + ++ + + +instance1 + + + + + + + + + + + +ibm_is_floating_ip + + ++ + + +floatingip2 + + + + + +ibm_is_instance + + ++ + + +instance2 + + + + + + - - + + - -aws_instance - -web + + - - + + - - + +ibm_is_ssh_key + + ++ + + +ssh1 + + + + + + + + + + + +ibm_is_subnet + + ++ + + +subnet1 + + + + + + + + + + + +var + + +image + + + + + + + + + + + +var + + +profile + + + + + + + + + + + + - - + + - -aws_security_group - -elb + + + + + + + +ibm_is_subnet + + ++ + + +subnet2 - - + + - - + + - - + + - -aws_key_pair - -auth + + + + + + + + - - + + - - + +ibm_is_lb + + ++ + + +lb1 - - + + - -aws_security_group - -default + + - - + + - - + + - - + + - -aws_subnet - -default + +ibm_is_lb_listener + + ++ + + +lb1-listener - - + + - - + +ibm_is_lb_pool + + ++ + + +lb1-pool - - + + - -var - -aws_amis + + - - + + - - + + - - + + - -aws_internet_gateway - -default + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member1 - - + + - -aws_vpc - -default + + - - + + - - + + - - + + - -provider - -aws + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member2 + + + + + + + + + + + + - - + + - - + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_22 + + + + + + + + + + + + + + + + + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_80 - - + + - -var - -key_name + + - - + + - - + + - - + + - -var - -public_key_path + +provider + + +ibm - - + + - - + + - - + + - -aws_route - -internet_access + +var + + +ssh_public_key - - + + - - + + - - + + - - + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap1 - - + + - - + + - - + + - - + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap2 - - + + - - + + - - + + - -var - -aws_region + +ibm_is_vpc + + ++ + + +vpc1 - - + + - - + + - - + + - -meta - -count-boundary + +var + + +vpc_name - - + + - - + + - - + + - -output - -address + + - - + + - - + +var + + +zone1 - - + + - - + + - - + + - -provider - -aws + + - - + + - - + +var + + +zone2 - - + + - - + + - - + + - -provisioner - -remote-exec + +var + + +ibmcloud_region - - + + - - + + + + + + + +meta + + +count-boundary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +output + + +FloatingIP-1 + + + + + + + + + + + +output + + +FloatingIP-2 + + + + + + + + + + + +output + + +LB-Hostname + + + + + + + + + + + +provider + + +ibm + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +provider + + +template + + + + + + - + + + +[root] root + + + + + + + + + + + + + + + + + + + + + + + +var + + +zone1_cidr + + + + + + + + + + +var + + +zone2_cidr + + + - -[root] root + - - + + - - + + - - + + - - + + - - + + - - + + - + \ No newline at end of file diff --git a/doc/blastradiusext.png b/doc/blastradiusext.png new file mode 100644 index 0000000000000000000000000000000000000000..cecc3256b6a2c75c5366ffaddc1128deeca246e5 GIT binary patch literal 393801 zcmZ^~1yr0nw?7ONcXy}7-5rV+hf>@fio3gef#O!ANGU$JyIY~SyAM9VFz|8id5_%p z{=ZqzthFb}PV($*`6byCt*R`GhD?kM1qFpB_d)6-6coZa6x5qrMEKVd73M*6C@54} z8%ar3IY~)MRToD~8#@aqs1MPpS_spg>$?01^NSbvwdH31P;XB zxjI@xO_y)UeQzmah4M~@(eaZ)w3YZw9D9RFc_E3g-kmy>uCV0nJOeel3CX|OX9R@1 zj7X2%LY@NgM1oZ(5ul<&`6Ve24&FbJKzSh6>v1pjWG{MGE_k6Fr<>oR&66%i zvrIOs4isZQniBVmB*$fFN8M5d(BYSzQpuE4OPePzlk@D23Dj5xA=PFF5fH=GGW2gH zuVz@si_)l*PKFa!VFEtrcPq`^vtp0-VRPs3)Y)9thVrWqn%Mf0cyVgze}^DRD`V^R z1sc5FMZfA|#eY{)<~mpwzP(Er)j(xA>WW=B$D5&48->GVO{3n=blnuZs6ro&sCI3p z&S|lAN$jhW=T~EBm-JygerEFrjGAe2gcV(W>F5UHwq-$BF846aSCuI8pVE}5XzB|I z4JhyAvV3ZlZQg%q9|V2p=2JFHR1a^#lJCIlFS+W4jb|g*h9W4=qDV}_?|=8>x}U4g z+iYj!wMwG#c-Vn zmlObXB%txk5XYN-N&n7eEr&`IflU*=B_+EGi_s6cwDv-a=pzI5_#@OqOjW$34k=gZ z^r_si9Tf4{zWA$Spv1k&WtV6!*^jHX9Xz9~pd$}K5DyrR=W@o`3`vYgTJ*wwK#wriL#ztN8!}-mvLhFP{ z`X(^Q^&6Q!bkpYX5zLf0o7bC1ELbWkx3FMB8vH1h?YL$d(GQf^5mGdl9~hGp%&D-Y zg2yHBsrQEEi;<`TtK5n@iktiAo|dp z8)ZT^b_UyxK{tB7P-sTxhR_GSBgCU{YFZT4SeFo|zF(i6A}(~m)JB_@wr}6qLK{vq zmdBXo!m~5X-Be`JHz$hA3I7~M%js=i*!88KA9^Qjb#K#7{5{eWb^r!&Kn&*)Ry~BP zC$amTBBeQ2364AxURY%qBrN5^=9s#j3Oib{P-KQgG`_swZd-91d)sH*VOz}<;S#zw zQHq)lQ`qMN}98`WK;%k-ILan8iw)BJze+(;+d(~D7C(Le!)m#OQuKx zGqmFB#ZbIUqy9Gjjk(CK0HDgM+DZ@kB=SRqCn)Q~M9E~S=0}n;y7H#-Y5)N66X4e{ zXdB(IZ=><~Y(}usUFAeXDSuyTXPR~f7w{cm4=4hV0JPi$*AmDTRf-6v(|?^D4jp+O z0RcqIRm=MJ!FT#+pU-5@Vwb1f=>;1F?Q$6e2L$m1!EUUFH-{hH&fElAh1UdHf43sI zRUh3Qaoorp4IJ+svCOO#c*+2yMddb>#T1Rc85MTvyfi<*fgh}~bRzT{lo-Sxl#@w^ zp6Ol>vi)MO>QFQGZQ|R4>V^}*q|PMCq+yGyPnmWQVCIt9GHx;6F^m+4T~vs)}T7%$iPV^wfH^$#49D2YXtZO$$KBK!O+27qVxS!No+ZgeA`X_dyy^Y{u&1R+LQaA{PhUlaynW zhN||{5aSc$_ZRbp|?nGX`?pLS!0ZS}cW^Yw<#$WBB&?iO*>0A*oiKgz%}$}@F`Y0ihu zwL6;eZDeL7G|@IOaJ8$88nvF=r#n|W0Te2v6nvdNPeu1?m-X8!@7S?RXiqZOD0p7^XSlde{?apTKPKtHI*S3M@BhAWJ~{t+zTo>yflb_b-{ExzJzTS`>QFzz3>lzxt^A*t+rB7{D?}_2S zqG+PDhC}zJ_6}u2XEJf+o5Pt`jvnK~MKel?m?kvKKT!*D`kLLX9=4IudQOKO0lx{vr4K_g|BKT~9m@9d-0engZ1M%#N(=K_qwA$Or=%F}~r! z;lIOyC3GqqTE$v#83e`pYzDW95@Y*f12dzicBkxeEd*?zfBM!h)$>if-!~t($+Z<} zGIv;LkMdqQP(L^re{l_72}wmUWK+~x{AjAlS-snXfh9JV{yBYAz8Z4)vNI@sPkmX~ zI6xk|!1An5OE08%u4$}QixG~F)W#iE% z+g$J9?*5GKxc%hVBja3KGjX2jxXn{}d8w1hP0KY@p|50Zd~MISn|vUzw5#OB$K7#m zecoRbOdL=Tsk9U`3)G?c#a~q0BsVv=l(W3*Y1uoKJo~oSb1WGVnMPJZ z&MF}6RDAzoL+xlL&rD~C9H4C9;qKRaIYu{_Z!JXResx2!6-X*JAnLyB)_oLe^)yM! zf8yGBl(Wz>c%63udO3PHc;>Bc97I_s$XfAV(GwhWBkd$~yIlM}tq`ccZz$^dZeM=r zcX7o+wNmT6w}BI6Bz~2I%>jS?w2KGGyXCP&wkCwkYp_QS}f z`q)9)R1?A#JbbY*kxBzz_og@(7qnLk8k7&?su19fcy5{KK{>2izLEyw6Wvcylpp;l zLH0dRZztYR5}&K_cAKDZpslCs-S!&?`FNqC#Se3dtp3*L_S&XuCn5B*fQKrF3sR{I z4t~CU^CrKs+uRY#iQCA(^Aj>w9$J8hM&VtR)l?7Pm1DkCkfp4o`O@po0?Fxvjw=)t z{<}ZE&~hK&UO+*?z}tM%cGFf;6f|?RXEiZ*G__#$vUhrI4Fx6aCHP9(Tez7}dfD4K zxC(lSQ2$R0!B_f^Vm4~Z|7qf8D?+WUq)I92=wd<1!^+LdPA!T|Nl7W}Vs0t;QA*}N z?61E>sIA@HoCMj}JUu;GJ-JvNU98wR1Ox=w*g4raIayv?u(*0VxS4pdIJnaM*~wr1 zNLjd=x!5?l**H2-{?V_AsiV7_2sQN|1O5H^bDkDnHvf#|;QF7}dVN8*KWf-GSlQYB zUu9K`+Sa(xK|+AKm|-XZ6e(Cx z#Yw)nGQ=LvZx8zlGW3x^X4}L1P*#wMEf|LH!`29GX4buSV%SJv^L#*ZRAr&Foa)h_ zdv>h<#d3eLva5wlcdBK>^G&?c1o8XU38`Fj)P6f0QR%AX({c3f)JlLLH z^nRKBh3pm*&(u}?1rE;O$Q$r3Xdl0Dr;)2~^lF!;4Kq?tf!^Pex9-$~dAm~E*o+lJ zQfmn>MUVZ8eoWFQ^Q3MlKbdwNe6$Xlhe-@=4thyoW89QX(FQ%P3PJ?&N&>$X7#f&{=ue4s=f zzfgWz7wh^}%jU0^o%>3KlSj;K(Z**faIJTxemX7h`q|3EV%-_PXfvSJKAL5A&(k?= z<7{YO2_N`t(OWC+j1HOA-mZ1ARlhy9o^v(8&(QPqIC|n_+m3`H|B$~CT?jauu;yve z%CD6$&~{U6vmEPrpijgaXtz{rUw3n!bJn)GtuKHN9F0+$HEb6;7V(x4h*E>bmfX`4>79CGbKJU5ADYD)-J=&X*!5$!~N7#fzFoD>9_U6)*Gr6FSsaPP!DV zdask?yG;{X(%|=Na2_y+tC~?WIEe{|oUICLMXo-!=;ey*NO|PD{Pb^S44Rh-86)r@ zBB$svHNJ5&eni9{_vP6z!_-6?XRAG@ z{{*P^-9xi`zE-mCfM|rVH$j9uPJcp{uyUL* z$(zqJp`Lw3QI`8L>i3n{nUs*rjPg+R{o^9#G{hy5ugT*K7_O_9ke}|#p#oZh_6UXc z&#rsmNyGCy=zRhXC^u1jy*l?SWyw)iRoalIFgi)Pr}7aDjmGLeKh&l?V8$5)Zo1;e zcDd3!Jt-!p4JMthl$-ZlWT-XypL>U%8p7-oxB2Xk5_pVky76{?ZFPWpX<~Sp;(O=u{HX7 zk{2+q=eJ&v?E`A(9gXIhSm;Vy$}dO5{IU0|gixfDR@0ss2nmY=l11LRhpuEAky7HY z|LdWYpk#>!TPUP|>+B>CMZl18<|ut)`uAeKeP4y` z^Rcit^-WFq{NzR}TaX^Za$?ap?f2Xa#6ovSVYCgu)%gv^M^Mxm%!LE;B9U@%Oie#? zq7P2C#2&xBNi%Tw{hsL)E;O4#h z|Ak}r%okWrm7NFNxHXtMluOqaqHYFXAM0q{b-Hb1v$?@k=hnSFC|2Jn5JTnNP_n^~ zbt>%CY@o9TMKv8rqdoEET0AC$ZaOA!r(R^t*UIJvUmEQHe47V!FvSo>jXAu1yL3&x zA>cU|Xr`-z7a&T}ilB8jR2g{|Tnp%SEHRO+J1F;suindvRsf=JUJg8fP|u@meGl{| zB!iWvceucpuEL}pdgd*J@mqIgM>+rU=6_g^SG$%U8jW8*#&?z@c?n06gW0Ukrni}$%$#d&sObnPjQ!pQcLC`V)AkOw1ezLL z1D4LuFq_gA5@YAjR>68n_)m2-ZT9vJeP^R_cOz^}%j8}8%zX_@-#zuT;8Cu?Rx57H zrh9sNJE1!#qgUV^Eo`|X(9mz9iBphR<2P%)xL~1!1GB8fyEf({z`)hLMZdn|&~mQp z-s6gcwSu4jIq^e=>6g~driLK{8bdPzzscw-xRiUyF3)EYl$jVD0~)64%1&5+k6Rs* zHNx8y<$9K?yv7qEArGBq5_SI$mgj~oLbnC_Z2jdb3pcuKdpS3ip+-6#J?40l6Ne2p zCc(QkLeNlYZq&N0W*$W$318>a;UYK3!P<4dBMM3k%SviRqg#@~xT9>MQITEaKtu@` zOgXc7*3)h~k^8hz70$NX19{Hz4}`SGJn&czg8O+giwBtOpgq)?%aL8p@HH;xE5 z2h3laY#t%MYc=j4dg|3icM|e?#C+I;j5_l2r#7qf-}u6(;RWDBoSP;8@Xa-%effJQ*ol$siJuLL@ai%x>n_HpnA~E|@Whju zvCp#PInx%Mt{m;(h?^tQ?#!YrCG%qLc!?#XnxY~3QXCI=Q$ew5)BYEeSipr#>If5F zf(IZoLV!Hz-qNOvV@k@`Oa>K@ytfOlzFG#ec54V#Kj;e(R%Y(cw(!D{E)Y<(Do7*I zOBbXFt*vl9p90_Orubi%@DM>IdJy zc#)0U-_tAi%N;t0@&!V(4Z4o~;HWNvZo?xe>>)=)HlQ_54AFgNCz=(jUJ7%acj$j_ z7Eur^@3PWAZ_RQ}^tAtRQ)|Y`sZ%NEn9+%(p&`t0@BryJC~_Z;-QDZTN>%Gb{a*t7 zQ<8^rFbqhbJI%p~F*XK<%eCF?hK`Vb`5AE+nEi%fQQoZ?si%Hy6Yj2ZW52$QW@9Rt zy?37oS^UXieTXhJ*<@#bq&CLcOTV}3l4+PU3R!)N|9 zn5vbm7U`rNT00A2AUAKa;A#T=BIADBwZwy^AGmJ#QW%B5O<4E43;T2CF5&(|dS+FS z4YN^aq@|fSz9SnA*Es@1;Xr-;mSrNRnJ?QC+Cl5-gWy&{+hFV^X&=YaGP3e~0Vqn` zVmpg^fjUTKVP#^bl*@(sc@OYEyap zuKvN$^dA1?RauvywEkAJ{}92VAA(-O6ge&^WbP6n5}o>J%h~F1|7as-FgntrxhxJ) z9c_!&N1#qR_WIpDj?}`(w`YrOK`kTF{YalWr)|3O?}h|wz0bb6E=O45klDo>mwP_f zL8GCa6}elHWKKrp)(B9Ox}4S6?(_#YMIWu+ucYbu5>Xj{i+4m8!=vIFN*~R{I=u|P zA4_!>$f2MKILaYWFkq1Mu9p>GsA$tE zz5Jv^W8>M>s+G=`(D8Uxe);#d=}+Pe=P<`ppvP4u45K*zf}- zUU>t72h)lY{@~YW6phicMg@9@m96Rb=s45b6I-z~L*9(pM*Rafs zc*u~BHoCGvwZC#b{G3!JewSGx^HE&QZY( zT3AH}Tog^SLZ?{E^WQe)2uVLJI-`i)ntThUK(da$#KZg)=)$x${|t@2T^e2UdE}?Y zG`6GyrqI`m$0VxS2eYZ^$^-kAVKS0fK{l0`TpGO_QqCG{nW3757x>rns3NQ2JyHe1hjoRe0O^-c|Z018_ zG$*f}Vwqin=H}zcvFpx6L`E9|i$4)g)oy&tXBG^2XdHQ(6dC=1!MkN+|0Wd`&;WTT z?V_I9u_Sq8nB-zVM1D{MHuTVn?x9OWvPhQ`hpAYhdyp%V4c~rWi$&~?`684A&SC6B z8`h8e+LJoy4F0f%!NSb`Lfn7s_Am2xNqn`3)i&DCN&kq`jSU*-Ov^#0iw5+5DX}xy z_~qH!>j-UbYY=D|F_735s(7Pill$6wB7(#WVWhdCAxz~`0GZMeRG zs#+2VI>JqYS9f0?zn8{Mc6c1_YpWQJe^J@njTCg4@DZkHdDj-OU->OaRm(+jLO>|W zV7M;n2Oz$~a`5F*8pAX2*aUaLmrj$8siJ9cB}3ODMf9{}_nxq~bD3~!5W{2i{I`1} z4w{Cr%>!fk9b46#1VWN-j48Cu!3B}k$AUx?fNMFH(q93D@e%Xxm{3y@W#m^1$s0NyQMm%Yj4f z|Lb7JUhUh8sQCxZUlu>C4)dISOX{VhO!e;RoDucm`ZuA=-~kqWLi1>~@RjOZo)hkm z>SlPuD90Ncsw2Id<-NK_0s?B)VKK6DD6a`_gNeeLuD+-dY?=CFvO!k1!gce{BWxHL z+dn&C2u10Q`5SRWl$TMOOV;~Bf!_DG6(-F32u6hZ3OqB+;cef3pH4&EsO!RhRLae( ze3tH%K9Eqh=Fd+dWfh`~>R@2Ub1ox7AxJRZ9z%y;-z$#nN?I~H@Gg66<@%!db&YL( z2r$qvV!tA=muzk?^hFroSz2wj8|zmkl5HR zbcu*2v+fcSb1(++REP+_->Zw+u@ME^N?Be6toB3L6w$xM;E-rm-dsS5(PUV1D8+eF zAU!?AQI?>h7>{Zv%pgeIqYSOM>26e??BUqOxtDmCx(rZ*e4r+tl)RdF;?yHh`)77! zFStmH5Wa#_XhU$1`kpFlYymmF5cRPim%G0{3%3`*&(g1_JKf2tR}%ndi}Nk77Hv(Y z<}GqAouG#<((iq7kbVczyW;5-Fd1nDe{%;x0+ArB|DxMb8crDhU)Cks|-Q-1~hu^O-G)s?RS`Lce1<{f+gdiaHSPF&NlJ2XE*{%nP~jf%Pmw{-7Xt z4LNTB^!i%7>t%6$NDdSX@lBBa_SIWy6Ij&avmbkht2kBa4oRhhuN7kPND0T*z12kf z_Q78jDsr~&X-XyH^2AeEv2v4mx8Itz^O|Z=jCFhu;-f3N@%ZqKjT@wJ#g-tk&AiJl zXj}?)m-Q*As5HWPzRzR>=Ls`Lev-^b)XBCwu~T>mT1Odc8OBj|V|jglQWY#E7JJ|= zmYZLA(5W~+VO}FNc}_MN+CzYWzI|Z>E&Ng&neB*H@TiWlu|-%vG}nNE)$O$&h|2{k z?S6q}Id*Jg+GU$!&rYoKon+}&)<^<-_CqO$@K*+<*hn-7Z$ofnKqNXctQRNDLOXd+ zM{`RbQx57MADtx@=m2%qn~pt7ZHYsd>O&^lVyz_67&DO@b5xH(AD?a9h4}Fjf?8HM(J5#v~b|^%N?+042W<)*mBv9OYz1=RKd07Ha?9{;4HQXr?zuti| z;qH%rLgCLG`_W6M(mS+dkatdp?M^T6Au@>Mvv!`k!LzH2m%(0n`|ET7c6s zZ6RDBv~3PuX};vPkw8sDmGCpY1@+3Pxs#@FKgFneW7aDrr}{)Vv2}-~VH0IPs~;?y z2}&0=4XqS86obA@!mD6I!XZ>Raxe(S@1%yZQ>peD>zqPj0R*~UZBx7+Mj#ad05<59 z0fC{WUEx1mHtBGIUE{ttX3CT0lw*nwOVyOIM)MAmUn`A47DT_dA0{gK9S$kmoyI$x zt>jJqN2C%Wdhv+OoMN^6nh*CR_{+1a$_3Y=52yqt69sY+b4xGar4sj8 zU7^OE)mg&gcP@@9`oRC`WnZPNV~YY&*{r=~5-4$K!YBk-jUysa$}RMHnpH<;kEyy; zx?t}COfrug%|lu+`n>$P3{tqBVUZ(zr=>xA07TvjUxk%?&1o%XwC(i6NH9$aNl#a+ z{n?#eq+M-86&f{#p2AZXI@0EDN0EG4{JQ`}cF355NxS^ab6-QZHga|2{{43Zm)!mG zGmv?j)6T9dil1h>dw60%vpI0&RoN8V zkB8k>%=dwehxqxR>~Q(@&?(p6VY=&rXJgGg`DdrN8X!0Y=j5K!1d^ttJFuLaqMPdcTh^ zJZw=H6VH><;-`(M&jB&zj2H(#APvaaVR!hHY)J#J%9b=(h zcyIHIW-}~+?_s>(w+cU)Z5+uACh*{tKzL<`zJr{;;lG!87X!LeP5qzUS#YOxHvv{* zTHw(shy_{bZg9Q?BVh>vt-4*B%Yd;E6;GBdLQU+RxBbw$Zx!TEv6t5|@Y0MP$|h=+ zZS6=zXr!tWOhu3r9`cdVpz$8Sbx?opPnmHG`mF2!l7qhqR^By7VEkw~)BJ6@Plpe% zZJQXzVf9X0w2DW#jL6Fv?E-Qja{3&JX=tFR7Gr~UP)r4_FUiprZeynw(#ah6wZ@gZ z8xHb+5T4ioH7~f6<9~mfaxhW%V=n&okXSV~d2OiYm5urLA)$Y)U1ooQf)$ zwCik)%eRODuU!J{R%V92*ZXCf_m!CQEEdz^tS?+!c07O6>9pSXj3GoWH1m9^qPZD1 zWH@k-VA$QM(iyz8O5y&3az9XUeYv!s)#ygGPa;+(=J2$t`00AGY2$ODB9rzb_PjyX z_R#kUKBns{>&RHIz(vQ*@Tn>E?WOBbZHWVc(4s03jg{bY<8FCeAm90z!1-)PBUzIK z!+%5GZ;sebz_~|D;2hImt~$8=E#{`e(<-V6^OC9#nlfQT>q{Gj9>x;InYB*T@#Sa9R??T1t@m*S zb)Rk7W`poCI>`sM$S<6_={NDvlh}SWJgfr%`GAzjw)8Oetc=cwjL7W}_D+va(^Fc~ zr5Ig;LEEAWChOm^wa4mO-`$khVi75?g%t4N9((2+wGY&UgUI0#F3{;lRz>;3J|=Y3 z@^VFhRolu_4$z^dHuF`Wobsts}VGuTl}<$*ylqL8TS$ngGU!`gL`rw2Y;J!ps&iB zH8U&241wQQ3t6-@Xh6RC^ia#-aTktxNsc-EAGKSR*oeK{zH zR&8fm9Q`l@57%s<)|a?fgm;4n2om*@fojW2o??&R7PaQ-2-lnrZ>L?_-{&ht=(0Qg zlvIFL&IvBuv>?TXd%4?rh&e18L(FP67*h$eEY$B{n~X@9*jnrlP-1)&aKUQ!bIK!x zjD;%SMq?%RuA1%A36XAfoHC!bM6dty4p$mNBQVd*yiF*w1*Br$FUD~tG90Q~LGfVF ztk1a~_ME4Z;+B01@6aTHh!KtW`a3b18uR;tC@%DC#X)fbi>9TQ_Tz|xz@`ZdxPE5U#u(-Sn9_x6a!%q)km|((u}+^?2)b(w^zmpj;!IkXbdKegXLmk=Ih1Qwv7N(VRQ`Zvd&-#PXviT zfOqCc!@&WH7t-dTUy=jsIrQ~O+Z}73ylG^z3nD{bqtpfk4UK?XI?w2FyCT_+Q`c{` zKFs`koA3wy<%>99N2aoNI`uz*<=YBk#$JBM1>el`q!6$_k|N*`<&t)|i9m64qs{^a zUF^vz$L*I~rxS4WGn>)l!6{Fp@Auq*^SHg5rb7Vt&8Tke?PDAJVVNXNFT_lx=%E3Q zK1TqZyz<~p5q!bzEyfJM4Nl%OFGM2d#>^4C(P#iESC4RUbTmhSR~Sg-^moDGU^CZbZ$ zmsYaF;I1h+Fv0-m9gsh!WT!9>{%6YAkwuVbjq_fxo5h3_8YwMHT%EDRzJ@QX-^|cm z;6q*HyNY(+t$cP_C)nD6&vTXH zaxhC2wVCg;jpKC+GU3z^p>j51w|{$J{7C%)-e%1a7B%g1zB__6xS<<%y@F@FkNFHf z@CaU0(Doyy7CFu-yT6@@2TQ;mq9aU#t8XK>C1Tp`V9fFPiJim#fx7m~0Kl10GS(ZV z)?K+^1?((|u)TDv=X^W4YbR2nQv7>x9BDqWoRBm)|XXj-h&@Gjrcd zr3Hf-eA-SS63vB3$x>x;hTU?c8IIm(NphJRU}QC!Fi9U+nl|GhUViIjYhcXz+Lj_D zLHuci@@yeZB3K}!pHPS2OE)OLzuJG^?rk4MSj}wIFc)1i&4Xt_>Im5UZF+FaaU2Y) zA{JO)IZnp|V@PxWOugQXeV)QKPxOyZ{1a1scw*ys#`^2T0yEf9rn~9a&e-$lsJy<{ zR(LaL-M7|hOXAa~Pty<&Qxky?-y0em@#%7$U=oDR`KutrafnE`^ql0aMdOpaoX0yN z{Bb`t0S1-^6lKLi~uJ;KOWI#GN^375nwvfF+WS%kE-#1n1dFM=z- zw15W)5y{F!2=IF!MB01`)iN_pq*gh%R%gHB-1p{wGclZ(V#uhohxr<~$Nx0RL_YYX zODD^U$=s}6$Mck;HhZLhe*gK)`K6V*S34c!@=AwwVTZ`zpbN|}#Ux_kW)FL3t0!jU zV9cFo#D(D}03Q(cng1N>YxG%)cm7KkUEkt(sI4-+xESwXmD&?mPmGIw`4&&dJ_VKj zkOdd*b#2>k!K9uqXy?zxaCg^>&V3N8qU_E60AGv@cI+us#vz>i%0Z&pAu}%`N1upX z`a>Xh7{>eOMpPEo{@Hkz#ntIU6p+XID8nXj+Sx2}%lBGr&*zp*<#P>^xY=RIOG)ZU z%~ihRW<=jzH-F3v)jGW;gn|OKDbU~hyb3OVD@RML8+RY$vQRn@eW(5=)2t0+J9OZ3 zDt8!}&!f7Z?t_cnRPu;l$tw3$Ura0J^JFx;25<0S-mEj<7ZPwR!@QA?EFl{+h&|Xw zJ(Dt}*hf0{zfR)C4KZsx$^UigGEIk=5rnxP3wF_s%=cKfX+FsFt+Ae=z5#9oB3!OZ z`P2i%4!?yuoz@O{R9gdQ8?<)HJISYd_l(tr)wA_$_#Qk?r7(V!2Xlm~1ulryny$&9 zg7>wi9p_oC4eL-(9Gl4+nuNz2&W1d608PiUCCMJ}3nOz)wbc6czCEqhRPtUZbgnFEC~$K6PV2E68o`DC)b=##ExLD>gC=CYCMkS7{J z9?Ge>JlE4I?-mR!x7G$LSCH@87R#$mLq{$-zb9+1sfTu^M=XY%^13&b*;k_6;3p8_ ztZ76QuUp^*cM{6W#U-$GHJ$2pA=JiFxa!2}^qEQdwy6*~_8jzu(ZItyk-*8kCI$8| zpH1y#fq<2;9_LfeL)@C{cd(FRAwQi~mZvOD=%<@^RX}pYtu|bs0)KG#U^~f6+6+>< zJMLNF4W=}hPek#+{q^cDSKdJAQ{LO&W%GQ+G$Nza+lr+Cio^3xPR8M(`J;YtE+fJ= za)9Z|)y2@*C50nPKeO&Y;P^&r5yQFG4E9FIch|j7E?0!w9`(_{xI|G#<|Xu=t4xjO z(_f}fu6_9Wmrrf?vjx7!%vMeO3lP?nREmz9W~(0T97zRmX3pNPehF(pmw}!^p2M1M zXdU6|HMLr5?E=Hh!#%%(qk@LwfpA=DnpbleXh!J(*O(qiU~SE-$^_IaFZN|AnDFDomH*a#r@ ze81B|?)e_1vn|HMOzEG2qa=Ukx?_sMcuB= ze&gnWK$MEFbuND-5e4`W!2Ytn1n~24w=!E)i@p4v(LjoxO<$}zbKLn=V!vkx=6-3G zJm66qaR=U+^9_WCqRti5m*ctbGlohRg=H(0rn-PZBN2bjCB$9?I$|$dxP4Fsxpb;s zkuG0U+62+-L|Q0)*gxx%8I|GyAzmTX--+(XuJL!SK=@`>x=nmZbAqjF&0eE~amC_5 z<~w`af}p)~8LG~_s#}zYY&#e~-=5=gszaT3(q86kmaxya=+A_7>v~w{c^os(KNm#1 znH#@nCTRxvQ7l)mJ+$1dWC|Mrh5KZM<}VAx;-?;D?|nTvM6~*2K!Yo^J{i_8sX~2T zS!s9b45tbJVD5rmCH~(b^M8n8(bpTTC95jpzoA`gW{|5lupcbox_|F*eYPkS@-y~s z-pEK~I8Jez<=*b9w-*gD@Z(9_7zXP0b^`)nP(pSxX&^&e2?LYdL%$;eeD#eEZ12`rxwa!Zg z?>BUXGZT)~chW^n*SB2WfM=0;r95_YB94Bolv)0amP2uIZ?XRsmMd)1RN6AcrvN6C z0>4dt+-AXhNVKsD6kU3iZAHo@BQOk6awkY7jYs+`^-8?l3Mv8uix8pKnP7{-K=27fkg z)n<~R@0l-8wUHDbZ<)V;Zw?<5CFrlbmMGitSq^2Q$5#VHp;?+34!1kbBHy>k!qc$U zGl>7jnU$@`Og`AD>$e2{2JbugAiikSn&Q-WeUJ2~g?-{lELCsrI;w$U4H)iw-`BkF zkJDYShw#}uLovb4GDvIT%>o&5_vz)0x%h`1$q*hA9eO-4wjM@%TX#dzYiik#mFm>r zN(RJS^j`jFmr=>5u^{2C*lFi@S7+K~3Yn7y%oZhTE4?>)^kBu!sKaTI06(kpwa4=| zC4gA&_IA5_PGUdD?LPcw#b6ZZ1d=U+dT`&+^6m&$p))UTBKbMc+MD9r$`g>3K<9dW z9`I6K_PrzeZq33bU)i@UdH!)ZQ3A|aWin&RXH$ns7U!tp*xx`={rV>pX|IM(tb;hx zkPV7jf**&h8zHF&5w$Ch7A^T|n-s%7%&fnS_cFZ1veQ6`RU2_k*4{4&y6cHWUXCV{ zvX(X~pnLm5NMkDm_VE}Odgokk{aWDGdhY7k(P}0eEB`uugRB;iKj_N)>Q9bm%3D+A z{`->fk@M9}_&*%~aQsg+`f>nky0)L~6}VvFS@7eBeBo=(`(!nDc=CIKyl4|M*&-+Y z%A*}gSCr%Zz@Ub%XB^$MYMGjtn2OBQyH8FrDtvQ56d6s?fhmObqKXYkdRp}ylGS|b z8zQ*Hg9ywtZWu|1a{`WBB<$O9Ks3y^@=6Q?!hU5MYVYx)n<8M?a0sf z9w~asp2$v)D$sR{z|p8(!E>&3olJsgXwxe}>6(-y!`o}rh^akcNW^Q%4) z#@A0PlWiF%DEiJS!&=3PDn+1#*9j8Dr{&wcd54+BUt1Cea?SWDSpPQk@^;~gx9Q>K zN);P*D;5Fnvb40X`HrV`=-_Sec^$wLGCnxJI-33po;;6x@AC#GMdrK0#EN+48R8DI z_Pr_F?--Q)ms|KN?}!`mL$k`8wB(q-Q1Fc?Os&K9ln6*47a!l!N(r1JBdu24j2YZZ zDNUHtA9U5>0cs*=Inv{^lN!rvu-4IuPg5e9X?EfucJ#+KVP!sxy|c7;{A@yj*2v1= zA-H3Oo1M5Q0HwDhs;KCzglhbt0e9c`dJqMcCD+W*o?=h4QOP3h4*c~i0J(Bp$(6If z9S!aSg0*|Gj;w6xB@{Q-%-iN%!*dcif`l=ojIk-? z#_;T@!uji~a?HI@JkqAs5P~yvxUa%N*nHq5sKyOxfKvB}k3&EmWOF$L>z;j3^A(1Z z0A@oCZEukSMN@C+Ia!isyQ8*FXxgC>(^#vZfcSD9JY-*TiaF&%W=hK)p^=O+GAu%Di*NAAw3E$W&r7PAcj zHK##T@WWKQ;0PyTTW44uC=fl+o_b^m?yrxM1N8UA*HeTNXh{+W%?=9inlFbtX2v(t zu_p)1H-Yhbv!djYOje?Bo=(XbTA#K{<5d=BY8wWbfmYL3p7&b=wsMG<>S`+fY^ z=a)jCm7a6>Oahn?KEUO3yyoCEk3-9fOGA-7v{@beKaxCt(NJ!QiWtiOo%1t|f|T(Z zEzm|s?=3T_GJ~c&3{HMB&!JToju`_}+;L%Iv7)M=R{{6xc26f{*4lNjTN8Rmf?e?I zbrTo!(@kzmP_Q7<_#j!EViGAZV5B&gN+hBYA7cHS`oxiXC+3oS`6Ai|^+rj%grCEb zePCZ5<-#E5?po8kbKso0YC<#vKQiK1|7VglG%?K1^=W7Kj{cAR4dEC1nIx@Ti zUX(*z!zhF@LW)or#ET?sj37vJ@9DGWzh-d4T0$Z4S&J!AgsGzxB#C-G~ z4+Tdt>qRm+#cm)0@pa?}Yg; z)=sOd^8=n1dXvwKS$Fjju9YrTMIGuI=G5`7gxE%nV$l6kV0SFgJ?*l}R?&u(8xD4* z{kv5nS*ndY5*qEDShn7G|ilxgN;;#*6cxFf3J-P zi-mPLv$)M{r3)vblQf2x`dzgTtIiMIIW;d;bY5Nun~=5GOWcaVe%W($R7RX z1R?PRqiOY)Is~kAg;&-6l?qX@bg8~0*6};D#jy!rjY78KG7+}ZA>}Bub*Y;53q&8I z0XMZuG->_@7nNo4|6}g0WhGwv$(K*_Hs`n-`5o52zFbO&>-1Mp)*I8(e4$A zr=2+OF3_lkmlN4JS$@6>tjW+mc+%`K*vP8?)Yj%baXGk_I&7nk!{DPB|9inX+UK7H zrS85Zx;+bH?DVA}I2kx4lFha9wP|DNX+%Zb%SgKQI#kJBMJV~^ zzg96kA+$rmdq9;C~2 zqGPAJ+M?lBh$+qB*41vI;R2%Lt+Ip{U*VA@af0oTI8t-jl}PRO;mTJZOP?6TNi0>f zFU44}YqavcXCJW-JnR3;8w&~E8a7gWVC-kf$L1fm$@n_(ZP{Wa#wQBJKyNP7&A}XD zT$BxQtr6QEx*T|0hWewe^Gf%-7)PUOA^xMI<461L-3qY7v(9a!dzc97VIX5WVqNKx zzntK>q3ntc%lrv6gN<6g1X1mDHf8pM9G!ZP%dFni>k|L;d4N_3*eV<`;7j|qq8;t9 zp6-urtgV$movigVr!~({((0~8r+iu)(Nzd#E#WgloZgTT?2I|0&&@QFMoyK*Ip~>i zIqMI9|76mCUBWog+TGE^B;lh+3gmFgHU7+c*CMF>P{^{QbO-Kt$0{<|M5?A51Pi`w z+Os2STKD%F(x2Dzlvm@s0hA_}#gzU6hD}NGSzj2l*B82i(}LD05W0HXlVzmt^UKSe zqTPA=X1>UxLJV|;^m4A9PbLYC&Xo4!48;MAj##@dD$;et;U$YmveRNOk&qvUiO>=D zK@-WD3%`(ecx3M##k44-L{sm%Y`1bvlSI|%WD6KA$u=TzAPw>P*e|?!Pu3ySqFx}6 zOnmLe+~ifDI{UtyZ;V4Aglb9Hk6Y4$e5$U1??fT5-6rk9pb>nD%MG*5Jt*&r?BjpA zql!Y0s}Rq=S)cEl`HGoImmCEWpg6XIZ(sKG{-#J5$bj`DE#r~u=<4aCT)qX7=CY#M z1LiQ|SY#Bif}c!1G)GXH=9Ys!pNUkr?~b(=y3N=|F%9fGagLV<-Nv_Rak)*pPsy-&ha5#SK)&7P(+3X8oLwIkgImt8*i@^X8mAak@2M-C^-M6k&h-wsZXF-UQhKXN ziVe%jdR#NPdDk?AyZ(EwmF9imrxmP^x2*0?(Cbm*IYmJs-SVK;qwAIEza0Vn1Cpcg zb$shMYU&GraOEK_oaRo4RfI~GD)pYeM_lKR;K1FUH>qnUu1Z{y%>;QM%VNCg`dthi%o+*c8r zc||ryA~a)@DTp&1UBq=``(qki-8;a?i@r>8^T{TVGG$BHfgWKyp}Q1^j#~VD>K(ZcbE`&lVerhRaJ`lJK~U6X_caRMAIalgB}|};pvUm;%a^( z;mYGjHX}J_nDgoy&HxGCg*4AL1Eq85b0QyaJ5q0cgiy%j*Lp91Zz2Z;4WbgLx3;=& z?j|w*tR&rFbO;&7;|m-D*l)a-?JNFKKJ{c^W5%4RY@5N9_UfKvXBgnsxZ~NwUSiin z{+Cg~31S2O#b%#Mr%c#u^y|$n`3?3V2LoeG0rWOGEqF4liT{mB#3cr|000J`0G2tM z`Zm~8gs(`B=|J0{dTFIDG#>Un=Cp_Nns@kR~Xq*{UokjCpj3vsK|mpk}P*)nxyibgW25C8TU#5oJJ*u z&BxmPbms9uV!$nKbI1knNvC)L!se8}G46kyl5SLz?*urRP}M2_v0YgjG#krC$nxqX zLqtfca`tXW!AJnQ&m&ciJUoopiBF7HacEqSL+B%UiS{*61{~kZAU{zT{Op5sR$#+Q z)DSc(TRhG_eY|h6Wj6~I)tPN%eIeewQEWnQ^f|vnNMFkH{=hv@$noFiuB=G!X z6~d@W<;m5pI}dFR)?XRr`YmN@B=1MVRU$fW|M;36o4&CKO&Phf52Scz3yG&3+phf! zyZuqthQtSe5H^R2zj=Kb)!?ni!Oq)8Q{^g%xS+6()Xcc*qNJ;L1eC|4lBcmFD}~KT z+t9fD2&GzGMKLtQ*kd0KVfq?8juOR3wc%@%YP!CkNu+;04NtwGbug_ zxZRDC5T9J!w}Ex=bn&_%r+MF(Fuu*nQKWU9d@N!TQ(Iqa-j~lb*BHRcW&k4Ny7R-R z&G76t;sr)}%M6sUrx-a@65TlB6GRbYwvk~aDbwu1`-q+DXs1zLg=|esS>X>c{d3}{hx*1Vr#U#uC}e%0w{vZ9?50JJcTA+~ zy@Q3hHQ-mVJya3t$pHEL)tjW!sZ|5Os!*x8?98yQXsLqFIJ5)bt1Dz#@3xGa9LAvf z?pm#C#6sKtuq)yiTc_iogHMsq(~r$nuX)&jOlF**zQWM;+C!gBd_w%jUcp}L;!8VE zQlJx}(uI|~!=;Zb$RGk;!_ZWMX>bGd4v;HgQ+o-n>C?aONp#D*&* z*V*fzm=CeM;V)zCYnb2Ef*nqC3qE8J_~^@jU9}d1=LmP!ba&)R-60e!Y!(J!!{wJk zdj&({BL8V!xqq(fyMZj_zpX1hnWj8hEX!bcFG=n}HbYT_7?-4_WN4&%KD!(GrrtNk zi!|DHwC{^(>DTWbY4(HLxHW4fN?hL|-`z_q*HL-3!ei@PO0qk<{L<~kN450aq^eRb z1_C|ec1g+){<`}|WXux=FCmED!`|H^pUY)%=0^DI(Z=?^S@Zeg)v51pi-PR#k*M)U z3mT`qv+MnyRZr+VX_q6lD%n+DE=)E$FBc?(#lnwQO%*$2jR^s9n4I?N(JMeRp1# zMf3`Bubz^jgKmP%&DjEeCVY54O4MhXPIjF3cB(XVbIB+L$&)4Vs{XzFeWGFoEJHL| z4Zc(&#{&8zmN>9yd>(L5Y2z7{GoN5?Ci!e5bvfJ#sy-%=QH{YL`sJF&eR(33a4(6X ztML=q9a&X>!hY5>{X&T5Ky7d@jdLh4@6&_KPcqDK-|jRYq5ZE1$c_jNoB&}1XM@}sh< zdocNSM6sDjA`@!t5Rr?1l5LT0ClM+#TvHIsBs<-kt2-f1n_ip7sGNI0OGB#@@$bg=P4FB47{Wh*-o>lmh%dH6HJ;vg6t%N? zZ0HG;<9q=(w&<`UiBw*4UwraI@)7^s8 zP&ugDPBwZBpGJ;g+tR0e!S^DgnRNNKQwCQ&&RASm%(MmqFp9C`J!sO0j@bQ8Q2rMQ znUmlXmEQ6>q<`J#1|@-A+uUC4?H{(E?2?{HKaBM<9@;V>xHcj@44eP#ly*S=!d#JH zIfGi&NqNg+b+0V$dYtb!1uQf>-M#m3Np0e zw1wI?;sFFqCI6J*`fIqXX8b^V0@b{Ff7>mNTLgB@vIQBOd9Us~Z@X%1!&2wY3%lc4 z3|^k%dENh=kL=6++3{x!d0nka0Uc(}n%*;5zC7&Y@=fYx46yhUVBKCERho zbH2xoyOO-IJYXS;KfLEDeep_*)5E*9^ATQ=p@@>|ONny-@0}b^C*5 zW#QEPs3m=p)0h>^BnK)hE4#zXyIgL1^~+cFcYi+E;b%PG%+Jq%=T5C$vs9o1dj|I> zn?b3yL>qanEhnj<80pTAy{T@hZM$ zLu6-b>ubu$t~+~j7q+J=dLynd3%wd-JV~+KoGM`XORVDc2=NJMEI6B(lI4wJ6pB?n za8P=6;mZ$#K&=m{TF+7>!Ulc5bbifCa-$0Rn%DW>Hf-~hdm#Gd6k8HJB6SEeOmRbI zZI8VOOS7COQlB7d)jP z(aFgZiaYBe_y3;RlT%q*+T~!R*?IF)$CJFPt-LTLg*X;Xa#}=mmV*ZHXa>P8tytr6 z+CPkD;{aVvzFn`>a0|C~noai%G%I|NR56kh9AIiC^!8cefo<1Um1(DEdaduCGy>N* zatK9g?)4xqf90@8AuCRAy3E(z;ak6SgYj|7U6Gjnajnj^@XA8!?mVpPa$t^4lnDt% zcz|xMF~po*nE{M;-}$GO7C)6h-t1Ox2c201p$rJQX4a5*UBR=&asuJSem2*% z?;AcO9b}0P6!AiGN8ety>{Bdj|CZfOW*MTQcOj`r$&u`;#@>!^s*%apSZC|=Xvu_^ zvyxOVEfX$8SV}lay0kxDEJL&xT4W8s0Y9L4^kxY=1^HaoeqGxCjzH8~+jl~b5R&Oq zU0vGImkOCKmo77k!l+Lf1H5*y_SMn}JCY=1XI~Qth3>X}u-s9sZrEu!Pn&Ock`a-+0|g?DHK8MV9)C-AOVwr z0F~ap!|tBmU2Z?x>QnWhFx$O2Wjmo3Me-K$&=FeyE&b-3vxFBWDCNcXN0leAYyGQJ1UaBold z9@KXrt?;fi1M~7xlN7&N4pyL5n!zk?)!p^LNZN+8KKAjmAJAl0=5?eAz-#BQ8Q-9& z1hVRCXF1+o;A-8yRs~4qmR-njKM(+`R@6WG=8>#=*G4bJa<@LVQ95?MY1`a2MGiTg z=YCL*ofZ`s&Z{ev25zLQrrwE(t`RL)PhD^{Y2lNWjZkCT|~Qo=GdP#RS;>Pq3O7= z$487O>t?wgJ)%DR?_iy2`=f&(WG;`Ei7Q7q27IX-tL8!LgB*H+o(^C`$Qd%4obwXF^Q&C^i*>Wim(WFMgP} zyQoV1BqIGfBaTN;yKB@t(Fz?l@h;uYg#=X{G~ zg^7K~Rj2c~V3;^il*$LFi)tRr?lFw*3b15=J0~a}>G*6b)8df-^-JYA)`$T3wc^4Zu2fpvxTKe&e47~9<;C|TH&)+&aak>{(C#~{Jem_J$mycfI>uo5E*hUuAGrs8X>=M6GhgX?lqpts{9P!5Ms64> z6th6`?1GrW9Rs0@P3*nUUWZ`8Io5WP0oy8#x?y85D2d;|wN-dwdL})$E`7i9{AMh$ z=E1Y9^=K=Ls_ie3*ySH2e8H`I~X^4%{6n1aJ1ZD`WwNa%pQl8I-GI6 zUg3~lGa~PT0N_nggIpBE{Cu`P^~t*AMI!xPn~?)r__!8ZNAml%C ztv~zg@GP}~ymaAzRdIx*bIT{+ZAZ90WERg}D_Yk)AJMiwU0iu9)+8oN7cQpnuM)*0s)`O53vyyx`qJ(|!ebNEB#N?$y9N+nx6T!b*`Y zk=DstMp@Jsf_~n-oKe^Ll{0B8ls4Mb^pV$I;{3IqH0tT8OVUoevx3>%NNrTsfW2Xx z*Uee!o9e-)>ZnN+_|n|*%M0!j`*%OBD{(Z-@O(FGiH?MfhX#rg)p*PRnkXCMP+Kti z5jDxOy`u<|+a#oWN1W-Rhj~TqGyXmw@5e$~DIfXkwU%|6Dt0&I=MiZHHeK@;GzeRl zm@v=f*Y0#nqO|t6-EU#HK;=FslPJos8O%^ivu}Gbo;O0@wW#@iZ4ci9Cd_5+%X3NF zInwh+rsc4lRx;Xha@6HOJ5KJ7{p$fM*D|XR6tsyni_Vi5jp0iviiF828!)y zXu{T2IJlyFf1vhEs@zkRzgQ1q{TNlvluw{;yrFRs#zOnCGW|xAc*bBlGh_4Q0}C77 zL!9lrVJCm9QGs=l-Fv$)@98PW{rsf9NiYnF&*ZZArt!0ys|wey=Wzr+V3u}IgMF=< zZNHc5ytC}evl0}CRt^4P)&=2EK-it`p;%67_VLo_;4~n`Q_-cJ;*%c-(p9W zoA_)niD1;{zi~lrOpg7RyHna4o+W_a1oJ@X$DU{1xF7If4c>`I^L%rg=QE|oTa(DQUXM9mNpn28uehV7JOL;3_2tczzmWeQ5mE)|kD{91mZqMq(m#apkFtzEW2S$-kf;0^@pmz(sQuXp;Ggi$ zzrdgW`E>(>4<1oChf=mb%Rc^f*ngY%hY+3}zaQZGUG$&v)PEZPkFcjr1JB>Wz&%@k z>ejyv`>*r<|NC(`7VjP7oQfm=RT%yttpCI3@o9usuE4Y@rLt@PWvTx8t8X;;2>j@W zVoBP681Vm?tMSQCuH2NN?&)7q!=It$f4<<*_!*HWQIt9Te-MM)crj@7HTll_`(p5b z6K_{E1Ztaj{x!4we?A_5)$sJjf1(lou-pIsNQZCaU;5)-J358~$jQlPRZ|WdHSfF$ z)+gtZ%iR?I$H%RwM&Dr2feO`ecU#s_wd~U zdR5o~AF2*t#FN&lm=ApxV-$bQ_yCd=3}d^K@tc~s@tlAx+<)o@%|3q%a@N5Gvuj*z zM57iR6;=7Nil@d#< zr<}jHu<@4&XX$p;Nb4&1+Av;?MF<2U@Hz>b4~KFr%gpNGi(t~5TtCTy^AB@BxVgUg z{N5Ia7~dEvcVUNW(j3T~F}xMfbjHx{NY1onNJL`@n&vA?N@^ZTUIf?G(S?{>;av5U zcP7WstIEYy4`K7ZubHur18&?b*6 zcpNNFW4qtO*D}sg?s=u~-JABRuhAz>P0jq}PRzOC;o**!gWV2)?+EpOD9S%%uJIX% z^-^1n6I`tUw0PL-G#@A|e>VH$xvQK3Q+KrdgOJ!Bod7@9KbgmWwNw9M$mBJyJvM0A zi&g$C#E$H2Bl5mcHDR2QM(3%j8ZC%rprf;{z5a4?uPUH~`#Ek?cg_En`KJ(bYK4@d z|9Y4Iq93eRAFDRR9T>u%H#)BKYY3A;36DbM6^v$2GEVovaqF2FhK2LRhtD#ki1Y#w zd>d00z`a0l$#yFA%SAKe0_O8);ra(K6g|g*thTLA?C<)RV*>&^GE^Vo33B7+c)8jS z(`qZ8wc)hL>S|#YpZ1G$$Rqw8_}sFFY{%fdmjfTVAxSn)FlbZw*dclo8%r}GXIy!K zJ+R?Iu1Z{wssCtc?%z2C4=GMDPP-xOdN1 z4OklSaX&Y>5);z^M@sMa%3;|g<^!Sy=hC*Zp@j6fKuoDIfrTA3d0j7G@b{DlZ}{=~ zemo;_zF|*Qz>gAYBh+Uat>z+c6X^m;LcNW4W7iMHl&OG20`fWpamU@=FOHwTe;6nE zo&cmq_Lh*QUczba2m5z7fwB+X#52RGc^MmM;lNlfCovf}}JI?TzU2l;Xd%6%>ms?&=iF>LFpzwt;W=_jjdD1OI>vPre_g#7)vR>d*Rs(e<$b{7Q!+5Ge+J{vk#= zUnU}CS;PLas>|Fx70az!yN2^KlFHCdOjvO_Dg&MR{yYkh?!7y6b~D^u=q(ikKHLmyyjY@F z)^k+R_U;~6u~23wuBaf8tpMo7`}DqRJK~no*Qd9C&&S~H*~kEy^|9Cjs5T>F`GHykw7v8<7r-BLu2$r9} z_UZxR$IA3zJ>`~JY;wuea!1e{7y^jLJ-koEIL9W;NSAc%Y_h2!tMo9}~h{=2x$(`n0 zv!>VA1CMLW?&Xt$7QAR;r4C6Ar&9L=-s&D{XuScG!oX{CcJqPc{A=DlTU+*XzUw9@ zlM>(%!Jt)#hV^o=rT&B_I4znXsIyiMg>r6%i?aZ}j~av8XgMc6H*Ybl$h9FH2mRMQ zTaFJ0J_@~jpf0uKb63BTItV)sJcvBUv7X^A;ZmsxucGZIV!IN?$G0jBj*0jBzn=16KhJWe`PSsZ zE}s=s=zhz&d^7FyXPi$>7RWs1lwL7gGtD2Puj+qpHK@nI$O9_Mz6zRiV^&-b7y3+a z`u1v<9Y2gp4%ZjQQwz$9Pa;fD4t&k3rl#iDiTmk`x!GE%!btS$-yuEI88u;=d(FM) zJ_i=yS2b%OYP%pB!x>!){<5nKr}bd3d8wAuN$L7%!A$R1!P%PT=c(8PcpzqX8wg&F zB{`roT-gKd$zIz9+(7>(xTX%lTiNYSz}+!@&IPi)1j&AkapVHk+$_^UU#O~t>+&P) z@jAHO8|*F?h=MxcAifO7Zvm(oirhPkkk9vNq}4Ka7-%T9@7uWeIx@eXw8?2R7=bLV zKQ!Ew!ySthR+NM_E}K=lTxDxOu@UwY?`f(FQUCbx=5d-yV@e_ZWVv7)^0uboJ8obA z`9w*{=p%;Hlm)``&K$*3<3{ot)GWzf8-kdLnHgJ+`1j^s{}*(NXD9S~(EuT|py^Y) zAjl)oGj$Fpf6sLP8blUz*A#HXipA9%VdEx5oDMy(m??qYRkO2eXq2FaVV&Bw>8Dc& z@aeqgNd@qX-gb661?e8i5>auE2{NBKr1RMi!OXrnuO}q)Vq!j*^GC6o=_H)FV$<0C z$XcHY5Cw{q3+g|orKbKOQIt)h$P4yednF*j zNha|&bl1jb-XC&bdpKRNK#5PysYDc@X)Zcz^2bv;+1yq?3OU0~n0++AIZqkN@QS+U-lSTc{giI2pJ(!O>4$N$$d6QW z+{sB~?cQEyJUl#Fb;{_#K?y(e>4&op6&L%5hhtw|txTm%OiY}MCb8pnDMB$fpBhxr zozfCg%U`(oUw?#v+uFUZ%tZ$KYbB~Oo7IAFlZhIiAI#*{1B>a0(n@R~Y}J6RvLCCf zcKeH69=-UyNcKyrjSSSn_+l630cIi6-ypsvYvZg$w_>v4U zqUPPUUXtyyW zfSk8+&hXq->R*VbG3vheD}mt%ZZ|XL*lhpeXdT|#cW4-G|)PMjD$R$&i4$4`#({JHo(aw z4Vk>_A~xuI40lg-@P6idxSsL$wqWzggH&E{_FX`rPoP-`!|yDD?$1Ri=a2QK=m&pG zz1;-!k)71t)!v{ViEIxlwPFB~%kqrsmaT6GUqVj7AW|v=dZqhnlVwKhL3-tebWrP> z73xJNSb3RK)2go8$$@`{E4oN(^TW6&?ux`l%aNcKOtuvfrK$s7Z^LY6DTHA&55+Yx zUJ1$jus|_G|Gl~br#6Haxbti=jOrNWyL@n7s0YcEI`530aBr7~gJFSE@b@bolbZ!6 z=<^2$wd%6)XQ}th>$HqNW9az}Pqw`m0#lnBCeRhFvi(5sc~3nV++fYw$@!UQqu)*y zP@r+gOls{-lE;sPhac*!GKVFP*rm3|YhQ0DFk< zK+^JA)Q-hubfJ%Eirx449sq?yIT2yC7`{1g?^VLu0f?S7=gsa^(@BVSf!&EJWV=0# zN*jCx!7o%s@m#vGfgkQ24L7gY{U>Bf1{eKMyLk@ft?D8+!-t#b?WXk_izDgHuQcC_ ztyN`EofPGP^_l)_PwH$zHR>|(%ZP25MkJN&vxySD=;0yn9~8f15d`BGL;KUhm-tNp ziBK@$$F~F~VXL=Px1C$xTmfbct`6vc)LDnzc-9@Qn}~L4q6rq5ji35M_1gRpTe5X6 zL*Ker_+ISX>wJpH8%VKR>I|2K2in_zwx1~7yo3}tf8Fd7R$A&=egAu@!NWeM)qp!C z^MNP|`n#G6qpHL)OyZYy`uqA0HcuSB7iNFnrIB`ewdS^`SE8#1lSTTv9UUH*K(GCz z&d#jEl&>(KVhp>c@8w7=b2x?UONjX+U)OmEKCycBikFM)(o_SH-P>Pz9q2=I?GJtw z-k^QV8s{0m2k%zWk86jibdex)Pd~q=^J!b=d2nTvEMfIS`L>qkaPi3k)A^<|8t6i~ z5gA-D!=%EnF6#V^1JYp%f6KeFthuROj9#4l{AxpKV$qY~_n|}sH>r&}RY@o1Caj5V ztH#x88xVD~EXe!VWIk0W@gVP_$2 z>dk>g*v@JU-E8lIGz*mRWqP9JiPV(PvIQ({jSbqXM+*q|Z+vMob9_VL+XHH7isf%; z%lVa%hD#_gcO+3Q$eQQ66>MzUdLG>38enq$QmR;{Sls)~xc-eH>)#pb*2UDXnW4Yh zhyTF_P*sjyIuxFlGZIr#Wd?ru@B`%vy4We{CBx!8(e9y`^+tX=Cm39EO(^}wFYrV= zB|o+I;u&bS%QVl8j_P@%oAtRvM*ukiI8y$E86(s4>e(-E-rR`d19O9hdhCmH*f|d9 z=I&0XE2`&ljs6RyzyEN)yyftzwUyN!IXQ4n*9cn(KlwClXKSJaAg#OLoDfa?3%J8k zd5IK1JXHvqSEu;Sty|V51r8w?p_HKgf!^6W5@$r=tmSa~#5($tJuYwAYiDX2- zRN<2v(whzD>ph7{_?obN%vc=DeXWNPm){Z3tJar%J4GY5tpzXKHEz(n!Yp3;Sa0@* zCTECJG=0(YT;=}3!Q&a$9gXzVN4$?7|58j&E)n&cxUx&fm8nTPDQFwHf}Q52#zOpvJW;y)zN7&K5XAvt=53Cp= z=*p<38*b;)j-a)@tss?1ZlzzLGFCObOT@(ryM`j9`_BoFeg)(3>pD$O5Y*I;>kN+; z1@v47d;1n-NIOwn>iLa-l{arDdtsh*8sn5`gqiVzpiVbNXWiw4<^hmasFS9$;xBIZ z=dPMd-5bn2?#JFdwJI=z*N+wMABwX?IcrlgmS6)S%1hnsGr+tgdLD*T;W%3=vQ zxrAa?X(mEJ8nc<2H3IKH?9pvpk{C`(baG=T>Crt|>FiWIcevSpdrMigVFAD^DP4>tdY)|s|1L~Q% z6_WXMv{w6*ajg&2T;zhPHu&BHlk3#+FGVaiY1Tc?yXdcEuKi7}o}u?wTK3aUV8uho z33s)lcE9)ICgYCE>-!f%vF}EaoYY`H1QXz(o58TjqllPtPS2sH`gqOA*U-2>l zT-y6}MO!mGKU1bj1(V`QO>pSGHaL-L7FYx;^L`co-j@bscxdsc^Gm3cmU?)j_rmtVIJX zgZRD@S8QT5K)`XH(>`M4JoVwgQq1*`HilhJ!Lm1Cb=v}*iGLkfh6~m;@K(@{XYAGA z5JkLV8C`9F(Stl4_UDUHZ1YVG!2y}dt++NrkZrl1DQmWJ4AZH{>0S$_oGsAhqq@|A z56Gge)z4!uzw;Vq4EpRfT}xhl&|*g5JvOEZaEW0FF!r7(fZ zbQGUmE3FrBaXtuw?gi?BirYpItg_3VWqth0Dh<_b;tD#X?v_j5@Lt} zxTV7|0?Sji$@}uuB|W&X8l zh*}!NdEog93!j*nQZ&QhDBOD?&s4_0!IXKP_mp6DeZ8bxU3&9SRp6LQEkj%_nqCmu zi+8?hF`2u_>Y$Y&(D5X6ZzJmxiPHAb;UQLkd&&mmuw7GwV?$*t7}^)>S_^y!NSMOI zkSSiUUB^7%nl=0@k*)bN_AZ@gQ-Oa+Gx2u`uU}qZyTQZLC#Q-kZ$^JVrLP6y;nb~M zuZVNjqZJLq)Vg8zRHQZE0oDBz4uh;f^zrrnVbh9m3jCWiL(Rn2Fjansr&phr8bb?) zL87PGH*YH~7**Dyb$9ZDg}9~JMQy!XF>BibAK5>}ndJU=4&oo*R`L_oJ1n+Uj$B() z@W7&=Scm=U=}*z92U@Wq9-E?MLfXMI)%a>{Ak5!Pp;d})-Vv(D9vq`x+%i*Z+{%R?}sp#&3!Q~GfaB%f8Z2rD{F zy*h2(nQAu2lyE6;3+!@*|}o7h8>C>#sJ3BaV0$@Je1z?UR2L!=6xpA`ndM54@;9NCRwzDWSYMa~t;^Ha; zaH>oKR>-MxSvQ)V|3yPpWuXb92(};Y$$ol5oHr-pcZu>hA|~pSD+FXtI=(y0o^l`Z zDnWoXl~|S{&W8~vS-v;*oiAe4I^aIL&7(xUG}nr4PY>ye@j<`Ht3k~Y-LhJjQ41W5 zPH$_b063Cr2FRQDhN_tboF+H7Jx(4QpD1@Us&ks}hjisL5+Lgn7qph3TNsZif%?HT zIkTkOxE-zK3RhHdu7HVDNjavj+HLiz+9!0hmbTXSqVeIUs;cAovlQ4GykFqGm3Jb2 zIVA-)28XsLB_$=}JNfzZ#d^zM#K_fvqi1StN~{M`@RBN;#uOlfK?lq^ZeD`!W1!KPgxp>(}s{G7;s_^;#DeYu;|s3?pgNJ_RzxQ#%5vX|f}oTyuGYO3(L zi3DY0?yBHpgwoe*VCH4>_J%Z>(L6-(}@>&jzBjb$^0se*dZlYCEooBI#?W6 z4=0Hg$|_nfRKA`O#&cO3|EsE4^0UgEAeCTq%AmlD7-ltf^~u3cA`?xX4(Hye^&sBN zU*783*3Vfi+0Q`4GhJJ_eTR#>1&V2CA z8$!I2@@)I{d4UnwxF(2m1~=}PkUNCcBp4t2p2@xF!QyFzT8|lF1HThL&uwLtyV+W~ zwT-i8hSc?9yd!&!@U^>mCL9riIm8nKb+!i6N)~<(D&EBy5qND>~%A zV63TsM^(ji6cTHm0R&bUGwe`qe)oQJ-*JdVk?F)NUv27>O-8PzhNJ=B#v&g&e(M{3 zNF|rEHe_Ts*KlAYf~Cj2!JKdO!1fk9&?ucLUOv776osb|%bQ=aDEKXU{*$b#x0miK z+pVWtpgX;J>(*(SBP6Sw2!0Nj5G#gN=LTY3=e&R#FU}=cUQfrDc`q>KLFDjJ>U+&a z6%%#(Hj50pvMR3$EUwkuL~iQayAPU zpT%t2#>U2Lt6VHUUFy-rgTIqnIKY3m_`{DOXC2{>&g)36V8Pu6A>;!ub8i-OPkx9X z{Ie(DojW6Q_uXslJ1&>;8?u^OGze=9Fx9kd>oQ1JxU`4?UR#7SQzU=X#IjPj+s{^) ztwBE1x9Zv37pp&5B1CMCtMD7u&+UBLIYYi)tkm0_ajLE!te4L_d48Qar z@>!h(X)5Cbj22tRGg7!rhC1&w<=OZ&J>`<+)NyU?<7LQ^*m_?|u}Vpa+1OY zKOE{*FZ9$k>aT?eO(i<+_!Uw-G?e4xoHlU_%tKVUmStGqt;}l8VBp&o^?&G8rOLBA z6Dt|uQswYcU@5a|y$W>&QI*kEH`2RCoypnK^3w6nZ`gYyK|CkemS|)Lc82!Y&t}yh z9&r`TL@RygFMsWNw7*S>_ro5w6g#tfuR?6}&Ibg?YpwdOdCufT^ES4lOJ{1thT!wE z4oDWy*~Y9Bw7?&|0CJ7Q78J|o`VXeF0Hkacrmf23HqWLYavGz91~n6v3IO;H+GArx z!BbdxZX;ph$I;r5_vYNX9iHI8*AMn30XV=0HTlJ6;J{BE{>^bjrTjx@>G$1n0DQ6& zuD3T;p{Kz*3(_u`EYqn`j@e+G?42#g(;)EKx@7o$x#7GucDa{1K}A`rsl)cL@(iYi z#s~{Qph<%!pI)iQQBi?mo&9DnJ`2@>FsOMInKc zmeV6Vw2=~X`u;7>+Oy*>w}hU1I=%;qyBGj{8Sj0%@9&i&;ZV%V{$Leg(04Q^eAq8P z#rjpT?|A;!Xl`?2l<*yWcJg1Dc6`!q@+Zj$szua~$qEXZ`Et5|!!d@M5>UiJ$9&F) zKk2cdJT_Z}Z4_UjlFMA4BxSr|j zR)fT_`@D5(IWt6TEX)(lP$0gGKsK5j%5~EyGiu#aousx)MF7AlQ}(=$NLD732{!5Y zq0!x>)v+x(e5OfiZ_eGKB)2z`E%3{3D~7Ue+KxMjUrCaVNEM10GQ+stQ<*kWJLtPn3V+5|F~y(o>#Xpyq`0<0)& z7c>a9i}ioL7)l{HY2@5e?!Dlv7e>sw2*kg^OVFh01wKXHP~N!JpE&QiHnYApTT<~N zSNTfxeL>^e$Emn&^49&G@oqFrz{b+nd~*SlsN+(vpl%=8ua{aroNyV>YT14tV@jQL@fraNCZ_tz! zh(trUsO;+py!KBl;|f1DJ6TT@Pe>t8lEl#CR1>8-(yX3eUkY4ORK+)HjfFb73X-(s zukk}u8qwertmJRN+&ij^aTIf@!k1LxPK^kD+aMT@YU2aGnGeE#B4FSm4!M8PN&1t} z5;uDTNc5lrd=^19yEoPfikJ_IYuas!c6K%+*#QBEvAw>s)7bWhRNJve&d-A+)bYt% zG3$O>*zVho$Rc1f{nP0hnRKI(g>r+YQ*RgmX2vGzVm9xB)4at{=EdHyCoA9y5MlN0 zq?JMMy9d^_5bc&t7h{NOY?^WvWlq13ORfG$!g^w)cH$p;e2cfNHJ^MD!^Wo+_bQYkXT*hOa7350;`v$VRjHvX|-w*DKrPV;TTYoKzd?lJGJwzS32NnK*9 zQzKDZcCxhrqB^ME2xk}o;N?|+UWc2kXgSjj3Rt^dfWN!PG|mbDsNPu)#V`Vag1LiW z4h!m~!}u2fT$_zF3#$4cm}UfWGV$zA*4y3yv(jCejm*dAE0d!4o5yu_Yk1zX8FZKx z=EmMve;6w{Cjs)GvC%^%cGT$^uT{t#%&9ux$msCPmg(6c)ibTY6 z97%GRIg8nLNzn;)sT4US=v6_4=^!tGK0Q>dO%D>8&mowQg#TECP$ls_&TQ*E%{iCoAz?K?=bw`s~@WSCgud z%@=@WI<$9Nt8g^p_HDGnBh0;0n<{o~yinkq-Cq`{(wS0KM6Ukz>yO^%T^Gri*I0Aq zKABk_<%_309Vz&#_C7gdIV`^jyJT$BmSJ}17;@chZR6&)-D^_P?h@d&{6XQbxXYEDx_|$D(>p)^N3Ic! zb}2a)iLd=oFgI}QB=?nWfX3{swkIM*esKCUNwg|o!O%{%nN9X{8jRR#10%o5hT+B6 z6Q%r<2+k1TOt{&XYP;aVbi({K#(u0FSdC%w36#o(A})huOE=mwld5AJesbwpw6Nqp z;d*BZvMxY+=JD05U$&@Rx(BdmxcSMAnv1dRP;T9OS46E(359~6x4CJI*hs6B`1j_xV|x?6 zCIc_O;(g(%jfD@JZ&+Wd(mpJ#rw0Go$OOF3r|p5#*ozYr6EkQytH(}?|8toCG|9>? zj>km2M5eZ@Crb?-!AqI%(l$ozb(&SJdInqu(v2+wZF{k;Y{zE%tMu-?4*HkIrom0h z^7?Z#9#+;dTex;^g;IoB@-{b*tkcU^3M_^)Qj;+$l|DXQpD&{I%8ahut0Al++ESQP zS~dT{jkd08P*bYb@p|#Nu5k?TC-QG+r@gBQ_+XI%v7WQl3Y+Cn(L7dC?nBE||G^fS z<;8d2eR;x6L}8dp=-|P;*$P{$Mej+ih4d-c^B))bu4y^?3n@xE?y`clk+2Yqnb|H{ zxZ1EZsmb9gLGo{x>-m4?+?f9INR%>A_)5V(#C|kAwBImW>=1uQ*Bn|t^yAC)t?>MX z;trSUYgl^NEBZLd(9qBT^F~5Lt5EZ>JBJ)X5I#3_@`Sp0p@FCps%``+x%AvWz=hzsJ$7j9+c8 zwyTVtQ_KlYyk&GYU6$6aIp#_bo$b{3?Wz0Jwc0w=_Vec(rr7@qT+;)!awVehn6RN0 zzkRoTHENl8U{dLttM-YILaKhe@D(EsQ!n7%b&Pa;peFpX@%XLJ6TA}0T+AF#=JMm* z**>r8Ynv?k%ZdJTy*1?o)b9@;Xi5WlxnB#eyxQexfXcN;JCC(i-P&A*tw;3s_30u- zn^nSly(4GF%qjqXMK`qT*Uh)#1|Z3VEy`F}w)*t4c;eUFyMnQrFYy=tgM0Pu&Dw*2 z>8>z`Ip^Jul>|=R#4kzQ6})M6t38*?WZ!8uhyff7AugfB6##>_gv@&${(>)F?EUio zw_?Dq=s?Jw-xM?HvNOQn_ddt`NjoSub$9e zXb;p=VV~vS7_$TpL&2Ag2Lg3AP1JBWN4H3apM%dYRo>~@P-E2h1cDmS!ctk0e|-zg zZt)pB{jaH;#m42`Wb6@9gxBX8_UeQ!@llmk4BJXfI-PuQ6ase5R-i?g46z)TlTRH1 z)=eT*;Bdof!c1h4&OWlZ$w=#?F()Bz;ESbU^6C*(pWEU8@W9-?cZ79!RdMU>aA8qi z?q6n`s-197fGB*b1_T;au037<&BHwC0i9R!vUcL}FP5wQ)!kJ4+6)wHC~~Dy$fc6i zxWsmC(wk-luvoz56v_t>E{W{oC7fgQ>CsIJuhGs}@faW)eKke5$_JUX0Bv%Gk*CX&I#a+|9c(a7vtw&xxBRFCm3q3>&g5HqaS83=w$e3GjNn zgRGSn1|}G)IQs?VTHuiYGS>?8$@*0OaBhmidNZhHpEj%|DnP*V|M?FGSV`y_H$;Mw zGx?}hyG<^c5hngog++a~N!+G)vbauW4=aZMW9nn3=_^0uNTp4#Sp2>CH1hUUfCgD* zXoArkLRCt=OD#{pDJO7SCsT)@tJ>a~ah3EnIOZ1q^yxuRsphQCC;! zhhk~YYbzFLZYOtcpwBJp^Cf*9tG!4O4Xb$~pb@2sW+_<|vdt5K+Dsekdzn?x;TZ=1 z`rL4q{-X&^9pV2z$q+V!RST?pA;iNS9mHO-T3E+60VkU;*5G&#;9s%o7_Kgnzf2`I zW8;ZWPa*$GD)@x@JI>U3IGT%Pp$(wW|$-0)wK3mSe@jMi#K0*C0sXg23^X0x-t){3Ac2TkuDH z6y6@=%Cu=C-AOtg|7w63iqOFAWAPlyLOvOUJ<8j~H2emw)hmG9KdlUlk$*sOW$EP> zo3p8f$%pj(to?5JdZ};5XzdiOY%`vv{Ou9tDA}Pe^{3(l0}GYD14|_Q%91?L%$fu6 z@@B=3mEA+q3s%wyjyrkZE9+sFwSVk zb#wJS{s=rnf^3ExYzx-H_08|P4y{hku#t0fQ>0D~j4_383({XN~zSba|HD9iHEgiqYj|xvL z^+0tej<*&DMSAk*YYR-`c9l(M7>1+g*G44Anp->G&TsnxmzH|*?#FpreKdks!MA1Q zoIQ7L{|-G=;6!4Ya`^f?S=*lHhQPzTVbK+P#D|IteI?7Xu($&me0mqui&PHG1nZjs;UOwas`A^&Zm_o`SkV0^l^eg-Of_k|-a<&Gh1YHDyR8ObwQ za&fcEJ=p^Uh_O->eP;TR(@yf?;(HKH#amSk;!WBCsC@YmdYDiJCo2279iiNAeggq( zE#+4%lkXqgKBCPjO@65ocX8MhezXw)S-Q@I-BypGl=910?;##R{1#Lu{<;K=gDMlo zPrcU@oG&}e1m?A2kNE#JdiY7RXK{IAy?^7>RYD};fi?M|SG2vRJ@{>;{IJvIk%xPf zZzObB^=!ba)y-)34@7dmCqULx}LGYw(W zday$IadM?~(}k%$$|VXLXYU_ z%iEY92y=$A;jaGz_;~(LP`V8D8@;gS-(8#H-0*3ws!pSzzt0cPhg)oJOnd33n)|uTFXk$ys=Xi7<~d%datpgqbp+)XXovPINK6ZVq$G%?2N;PyOu0cV zd?AjMGq=5&?T0itCoj^;yqtI?!Q!j+{h{3%mlsb2M>hlj3tT-^eFXspG*Nd;M3Zegn>kx5ef4c^%^%jBO{Z({bLF|EQ4m52Y zxkJ&=(3pL)OzaD6Rm}ztJAwBH{%iZ>ckjM7?=rgP5>7P*NSAn!V}ux(drlnR-O&Uq zHD4bEaa8U%TT|6UVZP;!C`H&tu4H+DJ_I@_CrXOwxi-z|S= z2_=_YLH*cJY4w(!K9t@m(i@iWSdfSxex1LDrTZ=0;5?{ayy1Kuc)7l3h5{Z0% z3UK@YEdo_@c;pX+&&v;5E>khQ43wk>7z=Yge?ClTiYnZavsWf(E1B--=$P`bD&;pX2^!Y^qoA*cV1q?Nu=I%HLzSWfiWM-xKY^(xZUnrw%j7wC3+A`= zz1yn1wU17IvETo6NNQ}W>kBsdiS*{pn?US>X-KB=?EPeoqwTE52p!uJEmfU@_elnu z=;XoISJpQfM-vr+6EoxEn-l7Hqaxi0koUhZ*ybyhM?x>4SH7X*RU2df0bncX4*0MX zBXxl)TV7vp#f&yKUwZ=8bhA`uL4a=wI(OOJyp6r|@0G1&j1%^DmHDNM7aeqc`pKtc zkrjZd;IibUPeZ2$Xbfjzt zDBUY0e`Hdop^W|#`THPB&U>$Yqth86>Y6dY)gSrFZk3FBDa}<4+|?pWX1y{P1-@}U z4Gl3N(oG8XDR>P?xIic-re<2ED18Kx^pR?YQcMzmqb%br7k zrw=h^$Szn|8Nb`3%h#^K@A2w*cS!F@wiEzIQ3uqfV?xck&ql%Wn&wUoQaDLpM??}vf^2Y=vSh+ee?L?I($8`c})+TGqE+(LRIUvZgvy3bLFQUC(~= z6JnhLE~u*yU`|8o9=yoKy=Pq1u0$~Gi~H*$&L!{5T=5uM;g#Br@f>RPERv2}^#WMf zK!x|-O1~i+fZRQ`{G#db*>lN4IJnr+)UM#}P*J@s23%9LIU-{9RAGE**($|igS(EP zzki>nr)R$7KmigM2mA@kN~gO=YL+ViA4>nBovwE;xw9t!^o-i@&__L2oJC^BBZpm8 zZ+eZZ0PTa4NC@cp(-@fwxMJ-Ry7}w96fY`{o1zP^$|#S}50YBBzbAA)`wy$qZbHL{ zF}n=Qmuz{Vpi1{K=%M zzLce7Y9-gz&Z9(tJ#>G<*N0$X#ng5CXIFq&z^o_SmI@tGF8Y38+gKlP5F0I3k`Ng} zwF9|)n$+4v681WbK>^F{GPn%bPVcs`P;c-m%V}(njdTC1pFG*aR+3^g(QDFHXtO2u zrwq-$2yqW8S$=oYzYYjK0s8-ON4CPt;o(KT2WlaDQBF1Tn$~bgci}Nt+w08XLk65k zdjFHDaxY@fk7VauBmTw9Vj(l@irhQ~37*!;(Cp_Ol^Z+z` zWKx3R^)y_GGiV0+P-}owW7<{Ap{}1E#0HLT^QQyrhi?dke_ZbVIugx`s!59E+&r#!U==m|!&ocC6P zuZTv)>g`}bvMdP505fZ*H_-KXnj|jPPUM0MSxko2P9Ap&X7Yn96oq^% zKgzDK4ekum`D+A4q^9UHy#V&s1y;v`$`5a#-veNBbsZ)%5Yb zDc)cvmOUHE%l`w%$xtfvE=*uWenA~QGV%(t?p(7WT1);r;Wx6~!>;-Vu=Y&|9uzuZ zsOM)>6GJ-f!2e^g-TCxFz*3!T1prtb(Oj@$>5*#Ym}~v*V`>$~1G4kbP_dXlk^^>) zysZ|s^7at3zlkqoCt20r<-Gj|@mDLMA}S&`MZYLJp?FNre!-bdwyL8CI< z6^si!0dHu3E%?N?ZGYsht)%fOSYC1~&Tcu2Y_avjoTQfBDzLyhBi^Re+?Cp&wpKO2 zz#?bW(^Pe@w&L6(roKcNOpI>Qof}9F;W?oAmITpK;iGOzAqGEKtWV7>mm*_@^>^&^ zCL9GU21eI^WaUf<2lT7U%VIJuoUXZjSYsw9IgY^vLk4%6VEVk&>atsfXMy=FtMY;XSz9>C}cDi-vZTz}bBp!`O(_o=lYrNh*RTo>PE%yzEy>uIXQ zO!2+etUCdJQmMAeTYER67}#}>iC-GrPC0YCnT0n2DArSRwx$3`utr&qQsNItz8tqq z**Cj4X~}5w2&KY5hbrVOaoLCkWDogmW3skO0mZ*&2ttXNP7}LwKeT{2T;OGU@+9wb zzP~Qq6P5GQDLUir9g1;`%TJx3U|;MP@tV3qLf1y_4gMSBPpzHpHsO`pI|9%FTTQtC z^?l6H;&nc;?NoB(=&!u=#a4bz@g~1e1R&tlML?6$(yx21LSmzfAxP>yeQbH1Diuu^L zBY9<0I`>9fx4r`22%yVGaP9(WyR)?s$D2|WpKwWV4~2-afT*3+mT~!Wdpdy4?Y(`W z3k-BkI4n;QlZ&gcXFcb1B>YhmIUpGR)5siHtFr^>PoCT`ho@S&y5iX|$R_>}INSI! zSc((b*o8Gl%BKT_z%77z>!$!c8)Z8>5~||)nI&hI&a6$AufIs-=JmV7v2cnrzz|2_r%esl zJqkuqE^f8VKv*LKFvtb{e4YC9BeFSp!Xt~EgXNqqr?=-Th*tA`xo++86bK`0O)=`}V3E zM$YGwf%#))zfcXil7&31f7`*ABybb@9&-)XTJHZ63OByH^|LTZE9zNQd$JDc>!Qa1 zPTYlC{owTAN;v%Q2AdJeT4L=ltZt)UWgxdtBheNuKZUu6Z%U-q1;%`MMutn~AQQ^HJ+3c#)6U zF3zJo40=#w?~HfAr^lD$aJM$ZIuwa~!Jcnvm zeN$}E>6q`HHq5Gi3HQ36t*GaN$1;(kIN^Z1>fE zzD}q)bzGv-``zh~5CsV>Rv1=8PS8VG#$7f^$1U#;$xbNi`pxj}Lvq@+>#rS*4-3L3 zZl-xmmwr9*@vwbV>tMW^u-LfRuJGYRP*2axoj6r#$?7`8u)jSFQ|MwvdaivXlL zL`J;-B>bMN+QIM8vGfcKhZBN*PRJv0Ml3LM-}m0`=6kf_s`-xGd5V=`_{@P6@QnWa z6#`%xQQ5q7Y$l>r+bE>3yRaXPFr2nA<&KOjEiIo9Tq3?L)!g@2;sN_Y`%b=!K2Ht- z64+My44Eqj>7D4QIu>Br@fWb?1+g3l!-qC0>bTAe0pf7H{Lcr~c7m+U+3M{dRxJiI z{@YlpwzoR*lhxMwu2e%S2vSn&(+@+x(!Kxz2Dv}_%pL9bZACj?q~;VQ&daJ%+`2|; zdTikb8(J&@I(XQZR*89+rJZ)nn`vSl)ep}AaHw*GF(sR7pXBr=@>j3A_H*%j0t>Kmcle8kZFy)t~SLQXt? zF_<%{PhVBlrw3H-GURmMuLo;6=6Iz?bwT8HuI%%*Zn^m}5vtyu<76e~jPnbo%jC%0 zCI5Q1_2&x&sj!h(GTi>mE1Q(+V56y`6)_Q{e7RjwD=HFUQK&{!DS>V(x;KpYZ_CaH zWiekTRp(=(_7_M}(lq~LV%qoNqSNt@J9)v$ikLPVM<1WB!?MGOQRA$a*XzW1`6|@d zril-(v?n~}5!YpD#5@5HC4i_S5@zK~fhqFrv=!+Qsnxv97X}!Z8A!pWmM9~~+7R|Q zKaa0ua&0){8vgVOln*E|`H>-vDIHn_5g}MfvJwXpRgFee7hiy8)cT6A#yyjL=9skq zCMn~NVfH=x)o?ZjU#7GpNW^{ju|oRe(1)P=@Ls3V{k(W((qCFiy~}|5=R09IAoe>BcRisiC64R)Md|NI`@=C~?*QwFJrYlne*99?lPA z4huZw8}bzE&$zX!TLAR9C2&!mqmq zkvX~79yt5K%|fyqcB?+Ozhc7f=nB`z&SnD zU&OO)JRjK^5{EB_Ix)hpLSxt$?Dh zdeHCvMgh`#NnbYK|B&I7FP#UFU5lS&(E|Q{0ij(d*jtb{12ADP(MxLj?)O6mYCYv1 zOVjkD2;}!%IP>CVzR{UmO6jO{ZT!MjFvPN!+2aC1t$u>}LU_IZKy`Pg=b;EloG=|u zeYHmkATKfe3^Wz)JEGv>%rFy3pS;zmIO#QHlE5h#TiQo$t-*mp<&^&-Iqp<3ffV#6osf zw2-B|ZJ{? zzL@H}9}H-&XG``>`L_ZkGqdFE#C~HPoHc@fAQO)e4o}{Pik{ivn`}8VG#5TCJOjrX z*2VovOQGO-Y=Sg;t?tuO5b<)*vzSDXu(yXNg7E$T&7i&a3L3aQPE)!0w3b-BsW~=3 zi;_e;yZ2t{0Gmiy_)9VorX3gV-M_SX&q%HOT|0ERa= zUAB!}ZSUvD@bGYb+$ihQmm80l2z(LxVV~O{S(~thM;Ai7*T#jAsA*FFzD# znQhu9lokImGu*dNw(kE0x~_o(%#`nrHehC-~cx{V%6ek2MEDdKcI_ ziil^p1z*h`3~tJR8q~KFH-%&9a)t|`oB7+^SIM+gwYWe%%utAD8l3f>_d7z>lGv25)ROvh#D$6-brJG*A-tv%GCiZIEvF<(;Z7CCosSfY4s=0yHI;k_K z@>?9{I#^m*2J+WgwG``7N1inD@*T=!rB73K|5J(MRGgQV;;x3P$}rp&0i(rd`0LG? zxtPUm{+{^Ca!KhAdpZEFjc?)uAm>Z_XJPL1*6zzCxTjCQ&-h5YA5L{R;FuEWO0L;q z0ScBh0^)vAntKY#wZL#adI$CNi$4_#lh+q^o? zMLsyO*dk1-{~_JD>Z$O%t309@ZKHk;cDQ&KeBa@nW@L6KEBD1<)eLEBx6H3BShb>HIO0TBvDnd?{!;c+@ro}i z(mQA3UPMHMAc~_TF@2(ufxQ0AH+e>F+9fj#O8GE|cttW#P@^=?wMFWsmJdAJliuih z>x9GanmFz@iJtu>#8sf%Y#Y;}7WHd2AmKj<{LVm+0&qbdg>!myx`lE->BrroU}2@x zufTk2@jDVpKLDZ_fV~eNj+@x9$XQOik3UT|4xl6Mqi=YnBUAha2m{YHgq3a~jD4-U z=t!+P;r@9+nfP(CQ!`ys@gD|u@?Rw;n_2pnd7@+Tuh{^ItLsC)Tp!6hK?uABrBp#f zCI?8s`Q(pO<9{sJt}^^`$z1_d1mGh$qv>-M82R5o#^G0DX>km1f69UQ|G-X2Dr8Uv z4fV2Ja%z#!rQeVFH-=cu((=M#(icqIxBI8EGMI8Gzc27g)u=2o#?zReGk;=X^9D%2&pnaX9%UC^ zIz6}E&)qHVj~fAvT{l8N56!D=hI-@wUn|Ve@xt-)@^U+%90#CIZtOgC{&|gZ+*UuQ z=pV0?3W2uF{~JGzl?o@--$H#m9A1I$_|cPp&41MV0SH`Mv5*YX*J$GYHCGXsn(fZX%L|~gg!c=nA3vTDTJI*? z%K()H$Zre!RmClyhu7CK`1_6oN#Jv5_0|`pH^?~ceh&X3R%}^qzv~pc!D1{UDXH*p zI%1lClOCGv(qHB&&oh^{i*%NctoP0Q(~xj%p%znZW!;ppT(SS-%|YDho%M@~J1_nY zKp0LL($9SrV;at!U$5C_Ey0!P99<0_f!&>e)MUT6@vi@OgrK!w{$*T4b@5}Mr=XqT zR0g?(@T==44kr(4^tiyR31~tnumy!|AH-DfvKp@&lCP$A>xp7($Po_9r3U4v*{096 zx{99$Mi9r?;6`34q7A+aV1;PY2^Hwa!tTWN^DtA3v`%yMMqw-bVOz6ng*u?}r-~f$EtdE*U`PGlPF^2weNul9753tEUu3l3h*$ z%|&@xwA)Pxgy{<%-)Y7x*GnhvxXgLa0DWN9ka=B(vuihvlpF|ACQ8(g@6*?2fJ#Xo z)4SpI6V02$ebofyO7b!pRLXqiLZ6Wksh2E1lnqlpH;K)8V~5wxz^$Cy3gnZBi;V&z z=arB5+reakpW=LiT&cI*PZd_Zr6MB`< z)b#V#p1mILO^P2hLW2{E6+G^Bqk!faM*yEn^~mx8_EQ0OZnY~bKJB|IP*i3P6zv8_ z2fn|E=?2xgl|JgZKRGc`&C|8ZzCPg@-`zqlnrR=No|wQbCO>M9-C5vTj05_toZ4O; zV!ap<7q7)3KHyd-CZ<+Op%Qf|#Dm?qeo5nk*Y33+?+GAmoati@j)o-SCtJ&_-r7WF z4n0AC`t&K1$-M*Q99|sKcmMKG=iWCE755Fw7@VW#VYjH15PExiMQ0ShqGl(@1fFwu zcanpxl)ho|fMk~IxC>#Y_STUa4>_Ro)6PuHJYiRC^8;97HVCG(3Ej{CI94e|3JXFR zRRD|@&iUn)QF|mHH;kH-EZ)<5B%@%?f~=U{96aAYcP< zdo6T)+ur319&o_sA+hy1=9hFM_{_JXCV;RazE4a`PM(%3Xjr9u&B&8{>6p~)$3vBk zrANC?W`{9n$|=$HZVNrF88c!9Q1@LDl0(i2>2|HH_3|mW60@s2ebbf|UgNJ86u+L& z{iTsH=cS*=*03CC6mo2nS}f16l$Z?EhGS-;UQ(a$UH{azIszmwK})CKzGFNK+`=jj zodNeYJ?UAKV=qp-d;_~88^LUln+})VXQESorY#M_C8-|ZWp)|z52O4Fhm0khU?VPF z`e+`gHX7iMSA_k#ltY4k+1al6h@+t<2&2DVb;VMHk|12D(!;LL`Eo1**f!4+Tqb{& zAml0I)Bg2g)WYx!t;by9CPa|9dbrAaZ~m**s)j%y!2-y1MeYhCY>>j-Ka=ev=Hk2b zHklsYlLjE188Yx5yyEMX#^pasGx9xg^Z-;x=F*w@qicvN!me;vS|wYxp2JD9T3OB_ zx#U?<%ULyEC=@>EhdC8NQjx4Y;@`h|!o4oke?YQVinvwFr`YCwjw%~bRs?0jKFMlV z&tx20ZEMF{wDZzjj?~AxK4u-1uFf%F+@HXh z&s&dqvl`-7*OKaGo>O+=EV$UUSQ&;h4W|Y=^}H*{_fLux%#SOGR>2TdwsNd1cz*Jq zTRkc<^ z()TkV*pRpiFJ*nhjEUBQA%4;4>u;WS=%@r1jf|QWqx$hd;7Z zWws_g;|(eU4~?zp3xOJt4f_FuoQ_IJzgjISHzYjcnT0V}PR)sr!#}FRC)^?ELUhd_ zdx=kx%+|(YfjiX1RdOnOJ|%+Cl`paRVZ|wLgNHZC5-%+mDKMR|hBsp3>WTq`-w8%o zR6}*e>|zzU!w5MFpr1Qui`xZes)&v_UYuIsJ6Z(arCvOU;;_1pMvmnq53n+CNAf=9 zMJa3v(>9b?_}4t+6;ndHonqo14RhF>AK&;~ny`5wKUk?=1Y9a9X-Rd_=cfk4w|q1N zD_mN6&O|Fw@wR!AQHD`y+dY)O6OB#u@$>aI3e$J++gPm0iEJtS(VMx!qFe`{s>Wwv#C6lvgDcn8 z-NRo#X#nkHVWGZwqd3_?V2@0a{hei6Qz_``=;+ls_i#l8xSt{ObMeKuX<92)-FS#} zIpp^?jg`s4CCU@1;dPW!gE6N8;UDp@LZ4Q(!sLxYM`HX7S|8g(YXS;bx`ShJYUu1l zW>%uH=rUsvz1VKDk|tE=Z_P1(-#g@$mahX+nQWS7S4MJu-s?bUu(AfDGiS!9U(Ah6 z-T-HWAsx2PF7KK#F8W+`NnQO1O1i{=Ia_cWL0hfD$9wbMYcq|m#~)@nEhdN2q2|x$ z{OLO6D)z_g|Gx_$9$QL(-A?f-zYRL6|CHF(#cS_qYZCm6zCGFY!7jlG^sqx8>GCQz zl)CAU*40(0pD?X>xYD=aCA{QMk9I`>w2w-?4PxEk8kHwzBqABVof9vVC8;$vv{Yb6 zX?5?*2VK%b>LmhYgKR4`r4}$p!GK(OXn8VE;{I&mh)F=(aK&0TS8Sn~)q9L}<1?N& zUMQXn&aD=zHv^3|e%b8}m)2c9Z=qJpuj`W@l5-%LXQw;<~LlFFF&^z;RY)nHhIM{2)!!L^6O01w}MhC5-L6# z=MjIM8gB|rZHkf6gY?KYLLDm?8pXYy?a;TPzk{ow6#sUdYR?Z0O1fNnXu2(G{%PllhWQ^um^(bqqc-Xhiip~Jk@jE_~I2=+Q7Zz=nu9tLkTJ2lRHmv*Y1@L-B5s77b2@wWo$K*VSo!@3w67um&2<9c zt!nBRv17NdII$SHsROg433wX7S-+|%z^WLkM3p2kdu-K^3ux`ykbh9rFrjfs_Z2yu zBF}E%ON2c80VQRis{^WheBA-+$l&JfTGd#$$GrKAkw8a42$34@Ki*q%Q$CHn{J=8Z zfT}*D=m1mBq_q66aBD)rr}$Y|Z90^aQ=&}-c2i|xXCGH=-zzio!pCAsoFvYWFV*A9oaKzt!UBOT$d_8 z{j;qNdXwE3Oo$ta*F8d z&7QTY@&F@UeD=MM4@aNw{awhu4#QJLbGkJ~2k$W?a7kz$V+$eSdV=W2I3cYFE)5NT zAhf;BC@vSI=l40oHiRYKMLXZLQiya;RPf6s5)LqNJT(SRDm8l`>?2-i->DT)#Xw}4 zJvex7{nyi-J!HL3YP&ie`3N;7m@Q5>;>v=aJk%ojn$;&=qD~c>8JsurFK}x_8&*c4-K0AG z)2Do(mUqRn9p^Tb;I7rSoI%2obinA(@{B}YqgW#Ym4D8;1|?Y3&`M$8cvkseyW&FH z45t%}uaf<>mgR7NPkPms{?@oHx+1Tn-ThS!*-ywo+Q8~1DJX|Ro?>UJ+0x3$hXo28 zAYE`7;YkB0Z~Z!1lZ?Ig;@>TM6@^4=erGDS`VHtxette$D7i~OKQ$V81A{xcPtqo0 z&z7)QP}$T;a_!XjmxJZxbV!-3P(EK#NU|g{N+W`ao{C< zuBl?SkJ}v+!=Y!HhHx66MaRl11L z!5=Qxj++Ke?CxsTSogHD-nW_O9RS&Vc}9R3=6HiDbX-bveZ7%M0uHOPb84`&zT*01 zZy{{&^|<({&NPOX34iA3bKpj@7ga?c*@N$`fptuzceGt1NL>U_ilnyM1*3P(PZm7U zaM3T@+*N3?dY$FPp^NBJX_Y$`ID7y_?#r&UUBOyY^nNIcaMM_{k_`!+HpbWvl}$E1 zG!#|HZOFa#sX*74RB)$xivfVFNXt}!_}5s=D`OL>h+xQF)yU>>KbC^36+9iv?pJEU z{TYJ8r1vNr8~=lOmcjLVt53dmhb`}Kn~t4Ka=w7q#k3=W%WzKhgw!)vU^`WR*M2r; ze-3umT#2ko)ug=pnZ2ing1Q)4K|`<+{L7|BT;Z~VPtTtu?A6sWgIr+`k}iU+QA7YE zAqv=B)rA|+IOl~%UC0Jl+k!jCuz4|nO2OdJ>bc~G=t%JZm@@!|td1h*`tu!20^aJE zxbJSV-s(G8WCsf;URol12-p;p^Nj<~MnMD+eLZzI^TgJPU2gb9^AzQiN>K}^No~~J zAatq#5Y7dwyK^bY7`*CuGIZqgnB!xO)d=4j6~`ddcuO+Y`oilW)t39H@#3RM%5iip zfA`WbQZHUAkjEza9%LVvM+ZA$EP(YeJGPFCJ4N!Ja1sf3&TBzrn=U%mc&H6<0|-N! z7;)>f4v27-WfmT+MY0XMFc^8FHeM|Go|%W}7PX|ti1ECK49(i38xjo43J=w|%K15# z8(?3p{^j-NZs`Ymos=9v!dwlVy01l7(sBLb1$q2SOEdcx-}>^$qIP&{Y`ypca#bBm zvzII6f6zJ@Ihz9xp&Ln;u0;N_QFpnJuKXRfvgozOCeuj?FbXEPQIM&T@xO+f9E;>{ zA+xrKAORGJd9aSgT{l>0;Gr!)AH5o8;7Z$E8-loFChg3Jm^61aYBsHBssht3m*>?g00>wn0&_7vU25y59XQ>uO&o z{*-|q7|A=;lQVRag$Q@8g0l93P_{R3hEhvwy?Z`;12@qZsU=b!AL@i@O=)#h1$Oz8 zU|%bhvDKv{umHMu&mKgzORmjM{lV1(Mx3A7YsR~Mk#oLXA=vjP#YA`J)3m4xxOFaC zAvrjl!}g)zW6*fkb-GHuN*|7)Hr|D3?!>O{jLZnBlg|#`6wCn8y1Z;dnuWV}t3@p| zBB`k+u|5k<%^_{xd1j79PGpzveIN2_x@+6r<5ny|(%AJJn9STYvj~ovTa`k<9rC@W zRe)fLNJc3Jp(%ySK0{|Vu@%(Ntr>_;OgUO=QR^-{A02HF@8rXJeR8c<6Tx_V?kvT< zS(2wuJ2-}A(~47VoWoaD3=eiO%54ivTKLhVirBmk$Xr|4iFNO$twh_dk|T@_`?Ntt>sIku79JOBEsNO+_AA!1AH@Rk00 zxIVoJDSl~MK*@ZOet4xCl@?5cI9C(Q+4bl8GjiD(!a|hPSXfF9CZ;Msfc^T}|CLP$ z)e=#@g=gT)N=G2@$sZ$@?*LmH--{LP5OaG;FMe^Dj=_Nss1!k&|mlH3E3vjBv_8F*4y%=^-|KEb8zQl?GR{%Swwc%(xST)PL zLM1CE^<06kBy{Y@rl?VASIJ2FHtmA}pXBEgIl{ZalPJlr)+j6=Akn|hb4eSMeW&If z1Pd{Iv7SCXDAgde4e_Y4DMp$7V}jOjqjH^~;4C>-7nY#?ga;s}4w(NA!W`-hKAKH75feQr#*Kg1VX;)W)eyVTn z+6Lfo+M>dM@5oh^Wyeu7y^+S(DkMjylfDE~&-p9~W!DRky;k^kL5YQ#SHRW8aSq8s zn>W47Q_#LTt=Y;HN`%doAwxl(>F3PS6xefBwKsr(bMGYBwK!%ND~3MW7~Wvw!e8F2 zAy;7u0d?=_=Vn}~ny~Z2&co+#09sUEQj97% zCRZy|v<dydlt|UlOgWqAV zZy4tQdQ3Meu&;c{U^b*pmztSW4)7Xw%|*>*;pW=@chw330hGjXM1+i90O7%~HE#Es zD2yl#;p=O|s5q6Jb{%D)lDXi7p$5fh{;ht|)d!jn*K-3mM3WV71Zhbl>UfM#oq<4(9*sH zo4HCYc-z;RL1+jaz?;kUV=(`!Tg<@#G22YF4x(TTG@9W=XT=66yy29e+6<|{&UWWW zDYVRIsQt;3v`!K$|4lfTn+oeG#)@1H9&{S1<{1m!=#HQCLyCuNZK)<({Dr$a%(lOQ z9ryD%$^lxf(F}BrxssG?Lkeyfe=E0niCNZ%0sI4WCl>tu7&x1LhaJ<)IR= z7oq!opXNpa>RNNKk zW~5=*s#7>F;|ctMJ4E<8z0BpF-}ujDP4MkFwGW0)f4T z7#2l7UR2J`@^^P|A!+_o-!uWY4EX9^`*W!-^1Kh(n)fojsk8~i^KL)w2J0`0Mw!B3 z%kFBa3KWf6;aBgz;}XyI?7WhC#M$+7uN!1cE!{HY_=cOdxua##M?)$-$2^6xp^BX0 zcQb=RVjYX!9OC1_Z(JkIIJMr)!S73= zFZ^GG`eOOkU5v0waTjk}>(js z@GzgSKGGO!jHfn?4yxD18ySbpSOW=QEJ zJ3eN``X3JQt;d@cw-g7~Y0ge*IlY^7?8?i{Ex7h#PwnZXG>=yljpoXJY|y*Y4rj5o ze5Q|z%bd*Aau*;|Y?002ob?plV>&ntz5SadPfjuw-aInm3*3|iG%3bcM6Ct^KmJ(- zZfr@$%P#NrK1AjL`T4R!kxhW(6!D!sj-$$c7`l~9 z9#30lTBH4jqAWOZj*GDHGm0Yj=!%LF_`HJJ^G)lOFKmzzUUAEtt*LaQ0eh!w{{*z4f@Ug!RN?)#?h@8k3R_xE^w z|0sHQc)#DT*Y&!_^SZ9*g>l*;oNL6qYk(;|vfFEg(;#=@ZW>feK009D*70<|Bre(i zbOZsyhi4lOaZfGG#ej^YO#_V`vw(mGwK~;0+z_UXD2w1&QEditqP02KF#!5LoQt=+ z+z(K^+-Q1IHtpRn7iwgaB`7f3^`SC?FO&ckQY+*CsG|{nNko2Sq(T1$3;F+iJn*Y5 zm~(rwH?pb+YVOp0&L9 z4Nuok5xsI7uOeON<@)Vhk!PP_u$VZovOTR%+||!|IIZHIzKAtx5jg$Bt|0#aTl>mA zcHf-1WGN^-JQ-LB;0?2!BYJx2ludCzx-D!D$7J&Uu84mGxq1DN5jrY}VAV*E`Jq3f zT)ZDK-s5!a3YYNlA(Uusmn%$Hu$l0pN`D!}3B$iTe@O?fMI?P{lA+g4VRNnLYcZ6+ zxsF6i)gBXFdOzRJgCJzdSLBVB{QzUB=TFT{r8xQD z)VJ^ip|UKP6z-rgtm!yD9dIWqM${NxTXKC>WSUtaE$7oKOI1~!FgL5yE|3>cl3MeT zZaBYbGGQG;eFMY0da+@#rCk&ZYC{f{GgOKWzEch>XMIf!-nB>!EIlc5viCSW=YshI zj!%7V`|GQ}y)5ZR0%h~o*LyhX-nH;^VW)DBL^5FO*Oqx7{I>PKJ=YnW8zpm0{})_< z!vE*R`dicdbTtw& z;sWvU|4R0o_<%bwpZ(+1htFUS*YCRs#+ucV#n-z`3|YN7`T37m!E1glB`3%I{bzts z6qIm$po+b7^2Wlh;3p1mIR6_5&L9;01QOaGb4t2&72U=K-*8;O`;83DU72D{#maho zS=Aqf`Y@Fz`$4%q~ucH=Gd*|ZZX{F^G20Vx0GIjFbPq*$9?Y4;P2KuJ{`n!~h zsi{mXysywVD`a3{W68T+rH6bWuuLD-|ek7NEj%Mr6G4yCLRuUWF$fqh}v8{2H#^0Yg`oh>=7T@Db zTA+M8r*OYOqBv*&kDYm&eYF7&wYX$C7D5Th7hB$iXE5P({qx{dd7mgQiipM=DdtBuO=a_~Vkl-`Fja@0fZ*)J-JW+ z(QED=crbNsjSLgt^w$y!6axk>1oJ#4igRi(m_obP-d%3}ccH|iren1>#4SpY=A9={ zU&(@u@D~<3u4ck<%N`qj)cJ)q0=U`(* z<7_&ec*ay6w%4>X^8ZaQL1pRd@aNS=m3Mio@G1%mFlH0aD*4{|m-XIFKCV;e*=g>k zt~8$i)IYP`Gby#mWuK6O&^0iA8<)ZXh$wH(@N~bOFsub|a zBioVRZ!JCGIv%)iXGV1f;lMv2X;tGCvXl(XkR!Vc?pJjkb+!&WzSgX#^8^1lG&Xh$!fQ0 z2JVT;>|~~0TRrQMlbYE#Sh`eTq!;j^TyfWy-DxjgKK9|jow&8J_v@!cdikl_xa;jl zng236)b{4MQ=wg3)5?P!Z>ND9E*ZxHI{t5RnmeZ@m*(-PtPv%s40TC#zf61A=4}Oq zoQN4Noe3tI?e3g|MGh7tl*qcCI?pauAzLD5J1ddb49RVVU<#M`ZqlUh|GD(lX1~6q zk6PHma1KIwgT^RzCU!u2RdGeS+*YzjL(hJI(2Y|g=S=0OC@!Sbn@DgWF58Tw!_I%7 z?4fH76V)(B?`Pu0bg}RdSbSAm=w`w4!H23=s;c7GQyl53&nP74OCgaN4H=sccRc=h zXdsqS^#v|QJTNog!y8@DB+%MfD*cXXq}*!QLF203qanxBr4jL;LGVMhN$s|HQtSUI zGu2~c1bSscE^<;_-&I8fcp~H-241?R8Q+KW_(-*+Wg7dqPMB`OZI^Pcm#X`XaMN{I z&n&1up)m@NP#-u}j9hw_wKa;-vVME3PeP_&k}P6rRWH3%@7DCiKeV$}pfU`0uk9mF zznsM#ZH$)xDXaBg?V!y;pkHRT?8GH0Z@{Bj!DWh)%PBy;acz4upgSfdSXWdtKDxM( zoGDPRXjw9Vd`BhOx698!#r+igqT9`_7{Fe79%Hgy<_4NieZM~$u_wsM1eCNIJH)GAOpM$7%)rL)|0e`PVPjX%4 zqCZN>sM^Wz;lY4^RegD(WpU`t)Ao`KquV7B>)qb@Ma*?ycILchU-ZXSN)D4`MW!$= zMs%t`j?#;v%2`D+ZGC?1V`X})uAc42`mBQ2A7IV;+Y z((J8Unz7|phYaOXl*L`^DRIfeQd@-^T3e6d8fGo02QvxB5KRkq)1-zcs{Ufoz(1?2 zNOM1+ZfOwPB;RD_LKOPto*D7#$jS)sRhsLQWhrjwv_Y^p%uLUuSXr(mwFWX zP^XKDMggAmMNwjV?xjsbA?4vM4L^G|?fSuq>6Q|OWc4WcqvD8bL-*BvQM(q9q3r90 z>OA{7+u4a0@a%zFF13g0T5L4xbHI50z$A9;hJZC`ZrzPMoYS&RujDrVmH+JNi&$GeNOqR0vHa`!c5iV; z0UzU&rI9Nr1NDqe`RL?~0OKglR9(WMy*0`a#58q&x!dDWe=4YT4{Wjj-l*Lz2(_}Z zSxu>pH&lPhn#Mu+s-1ap^-A=Lh!gSg$|D0gQx_E)3pe7r&3-7i@%x_~gGs(-pAMQ@ zG9{gsz9C(fwPBlsj!xt8e#Q$Bwq>htwrexibD0`~Vug2KTici$76!CzNO%d--n<5{yXfp996AI z6%^N37L&q?$W)+y;F4Q4<~2}-aHP^SEQ{x7fv_H!>$jw^jgNf^o~qkhZXLP#*yPQ+ zt#UC}&yBs2{sSE-Jcqc+6m7y&P%*Qjrp|1p*OMbGE60Llx#MVDa7sNX4T=T4fgh>eK{xE}FA{Hx+{7R5TKe{W!(*p# zyPx#9glT~B-R|9!MQr8#TYU17-(8uY zk=Q7T&aU(I>1nCVOdzWHKVYr&On5tnJb3pBg%eKeJ)VbG34TBNzqxau)!rWbb}z$@ zQz*o#(EY?OCe@g+B0If5|G5eI*XsUSelEk)L_E4;AevLm#+~_>VBR^6t*lM&DLo6i#AF> z!?xas_yym9mwq`%`3jY6CI;P-B$Z{y*Jo9E?xaLcF@*wr2C{CZ-=tt_N`lK zu15#Q_dvG1vv5E&15ATkXyZZlf-a}+>OV;KZ05c?Wd}Uoc#gaV*RA&jvs%JX(n!VO zyk)VEs5JYNE}i=oGVsoM#3B~Iy|Xrw$aAf~eR5c*641NC)3;=_AL_?~E>{5|cE>7XBD&2NzbnPY$u&FsAapjKFWwyB-xR*yT zX)LN3h?y3%`O8zf538(!`B;m4EOMq?x1NY@5RjIvToZ6CIQZ%SCT*x^%4s>LeCbQR zkfFY8I%M~1pW_y#rC~W|WVl4%_oOySC1&GNVz|7YEX~GhS#NW9@n%vYd)f2A$6G<5 z+w;a$*PJO#jn1}hML~A03gm8GFh{$p1#g4RN+!;+X;uuHVu!SJ!SpmO7ypmWJr$3+&pK`rO? z`m(KVNzfE~L16s{nQEDC^5sxpIb94Ob+7{6wT}DyhJD2t-gMPuU(~VC^6Q(GM;z$H+B3YK-ijUjvEeojVgr>T|k8uu`@#s z{Ma!T3>P#SDai{72|0v)`t)g~c4#oIt6fqz!5Xj<&9+A+9)OCTa(6&p6~(C$ds#hR zi~M$myrty^Hv@Vs-J6Dggpt9%*kEXA=!+1v>e;6&36QG&XJBaXHz9-FRiK^HQq#eN zGi)a+3Xgt-rzozH$Y=;&+}v_X6~x;Uf>1qYNy_x3x&2dg?w%!U0M>x_63a1FZ?XAtbfcx!=Tj zumuMXFNf^5bZ-!YsP%w`-F|*0kO7!tPrvGLiaoJnmf%jcMO_{SID?1R zP3vBagGW>rm&x-1OzVEPzcJ&u-KT_ArcZY&!Q%nGWGn1xq`0g2iM2S&oK2fGDgO?A<=rBsd5L&5)8Bmv=qCGsQOX8NXC4AYM?3B;r&-Q4?|XRDbB)!S zc%WUZw1$riiW1bE`6X?oi(vUMFbT;X5DFO{Ooz%Gw)AUQcZpR=9$_bVu5Pu2vFQ07 zk(bQ|u3oy4Id!@M=_4i3?ETubr_K@9oaxHZd-f)n8xLe}YeWg{j#xRa6b@iV)Gcv9 z_x&yk?rAH0mt`=SZFm@1TrK#T{d4D};K$`rnavA7_ut!R)Y_#J_eKJ<$zwW28uf!^d?Hk$n4rQ!)1cM&!d?23Bn0iq4;B{kz1boT_o=T zQ_!;=Si-e)7p^4%n{$u|q+6}wy49zPkJp4%j1T824~yIjCuPhrPwAHIDE&rHS~~iR zAn!3XenSrL>#CW~|P0CBVOH1sd^P0!dS2ZNJ=6%3k)i zcrGoy(?_^lMsxcB49!z&c0cLBp~ZoOV;)&i{`yp;gI;cUpSi`nBYRS12IjjGUFP2{ z(Yo&G*r3KVKp`Y7#}#|**uM&8jlH2z9U&W`YVR8xI^wZgRUb00^(2IOOVt7=j3f=1 zz;uoBqQ!w6I!bXtJKNUAXQ#B5usS&S4Sh37oWD9=&^lAv4{3++5(%c4_rsr8|ZSt8CCVB zvHc9X9#cWhsM+QjH=BA03GP$6yOy#imq|GOImlg7`LsM``0e1A;q3p>45AIA*3b9( zX2Rs1le0@EiLgVkxqsTd^?#`iUs{qfhZ`q;%N5&0=fY-5#sC+6GUTUAq7NC^k-5xb6MZQZxH6v5t%B^N-FK6&pHXk z>Kg81ChPrN><&VqUo#PAa4EplzLR_~Cxls`b4*jp`3ky>Dl}d=5WL~Pd=jD{4Fw*} zeFqih->Rs@l&Z^Cq$MOaD01m7v2H6cMK&#L#d`+3NGKelqXkB(+`4@mZ9vIB3o%u< z#@mr;B3#`Kw9@%npKU>~nTQeW2aF`f{t!{Aik-NDt$o8dw63P>{>)-$!h5Vg4w$IL zjxU-TJchJa^-tK9p&<_RiHkK1JX5p;us79thLnQ$fR4uRe8 zax)TTOYP;>-7jvZfhmi@`TBGEckeR<)8D@VLqDjArra%uD25dmESZv&czT0jBAhM< z)-LFkVz4+dv@Tn(;ETC+7kdmMHBtg-_|rixZ~E&rIejYC332AnC!%HgH$YwM&C30f zy~gg|S2r&oZZFCTKu_d)cmPO`7J$U=ERDJBYS4ggO$6@F{_ZCAMv*wyk^DiSM2(t9 zH8_^%vTsqbtIw-VA#DaUs>T50Y)>5K(2&b?_%(P*B_K;h>$y{2XqH1ZNd8&SoQAbm z|M?5x!=xi9D_!Y-Y6brDo$w){XFP{B(v)r4^zh*JS9=i~kJ-7zPZK2^~4+9M;Rp;2zD zkSZM;77}v#Dy)_}SM#2_;lX*0iNccsoi+w&ZIqC4yXQ%Bf(@a9sT%1>!2r_NfS$KI zuYq=HiF-Wf4{Oz&9%tq&KXW>Obrt^@3@mg*qu0j-T~9dIT{-*jOym$C`PYP8D_oEF z4Ke0zfQ;oZJtMnJ!Z6k*0u-BPgTNbG+Nnc@Btlko5($aao8D(F8}2>olQ^CCH^D z3!Cb-UBmEZ3{Q#Wj07_FxHnCHdpWqJFe{gui?#a-j>}B> zNRd|;`bRYW_LKPU1k)r-StC2e@8m&&{ZR&}@dT68z5BD&QbBXqNbwJ${prvn?*3R; ztfLL!4ggm19i#XkSC9qh%`wkEK0Z@%GRCc@CG4DZ4J;YF^0#dLXPMmhs2Y)SJa_L( zf(qEJDSgZl3c7pd5B!V0gtuej54M-Yg;`q}8~x0eH?OJ!QJgFha3AI0A$sC$EjHH? zmxFbz0bflb>P1~Ywpx9s7`iv%ouOW8nGTrA^dk@9RKXOdtUh=YAU~I=s81~1pF#~_ zBRo75a2op1D0mJ(s-j298BD|jZH1vm1KBHZvSEs`Bki4?cu%~n{u>8?lLWX${x<|@ z$u*lES-rYU0Ijp-@N&8n1_c^TwahwAaDSRih39~~&=jEHE?MnLPTM|!YS$i2j`k9jtpRaLA z=%R`yLmiWt|0UckBFF!M5ygm=IyUV z>utU~dGnyV!sZ>Zzv-#_WQ}wc94fG5|yzLmn(+K|nb2#%id;&V&jH|}x|XgXzO)@S-_ z#Ky!dM~b23m(S{*2f*-8_UHHS1{`q@3S1dYJ_Zb=1v+)-{I5QE209Df&t1GeuMogH zdu3=z26_;>*q^oJv_=5GU-SfoQ_dd&`F3{A=~lG)MomxSt4KZ7<9R^S`W?@U}f8$ zybnGF*!Z5yr@UNOBoWvOqVq_U2)_eL!KHt61SI0_a@moSxI%Amo;ZW#_&~}h&BN0e zPwOe+JTd|u)vdu^q{}XttvN?CYSBP5HigCgfJvEDs~*Oo`!e*2xLsWzV)gPqD`{=_ z{^lHdZS%iJ@hJ!4edn&pinqbYpbE!l`1^iT9Q^>EdGbc?U)&K(~szEvOVKsxt6tIeduJK@T z+F-ox{`4^q&ZVLU|8Wq5}HQeT%d>>>Q0pW>Oe+#CdD~8(%d?!U7 zyQAci?(=S~B2LC_Ai9kMbn!C1SWr+jcY^MGWMLU8~n3fG)c83Yp5UQe!NAKakL^ z4uIgR8Aauqsy=rZ+`l)nn`d3mLj3m@R?}U2e$2?9|2wredA2Y?E$fy1CY-gQ3(zWzGGGyblpkt+ihnXDEh&qYSB@l&|IU$!p7@^l{eC5n@1 zI1VMNmY64CLvp&uFjHy4ef^;_fUaNzy*nCZ1$5nY{X*qKx4F5Bz=ZWpMyuE$^=M z%F8H#Uw^aae~3$W#>XucvV@!NSw!k`i9ONZX`BH4aPkw?ER-@ zII7k(q!DEev`#OPUX)NdTMhzUml^VG=AKPPs=TmJLE>EXg#S9ZXe?ha#-w+7~M$)9IT zcBwxL3uvSR;!{|E3O5D0<%|#$(l5o$D*$WbLAvH>4c|5kG!hj82t+F(Q1IY6c0MoA zwuc9wKArFT{;DpJ&a`{o}7vquhUNS!s6jDAUpkTT*> za<9BIo;yTmYUZnAK|Z}e!4#~gU(h4ngGZ%4t`;6~SBYJ&hjc@n@*Wuv&cyKXS{;cI zqG-i-8>VduUI4*{*_#UN%TnV}nWqzJS>e__izD_DWV*U4gFNrFeicx|HcOUROj&QX z@u2Gge}*H#-uhq$l7Nv~9$?fY(P$Zd&CfeqyL`(HC&6~;Yk=_v62XN2KJ)+e!1+lV z>8erM`HhpL?H}+!*wh7l=&i%ej-@&hq1OP!w*g4SUUs}FG5Qeg>9YTc!`+;N4LIsp zuZV7{9He@NODqy$FqpoEx6*gnC!kUto6?zWkIl$$=aU59KnW!3`c5DRh0%NAY~d$0 zPJ89bx!UfSql)#P)JH#Q_^n?f^AFO2L&mpSGNqs3x}^_K<5qE#`AElB_YaFubrt3F zk%8Oednd&GPaKyi$Nw{CEh;eFrvVy?+#{k zl{Y%mpvs1Yc2x`>#DhC2OYgb7^A7H}gMM2lI*61+@2uDyZ4b13xV8`CC+nTKj-4mR zFK)*s0bglvbxS;ucEvj$Xyx}9sY0Xze}qjMJOhb(G@T^z&wF^?6!t@lc+3_2bLr3T z*6(URNy8JO+#9i;l3MI5kEAmksZzV5FHi8k)=mwev=6b+YuR*&Ke#)(J|Gi_N!$~wzjrDuU~P6Rd+{7eZE)Y9nrO`p)dM|^rO|; za?}bPb&KGEU4ObML)Fn(d(;DQY*46aKY^FC4*1*qNW^sAp+IxFkWhBLJUo78d@u0t z5H7bEfEK$&%nc_~cUauCABRD`umgDG^2JEk@^j~}#Jm52|4hV=82U}E8M8Gd<7nKd zb^zx;?m%FH8@>rovey}kY?#>G@5)Fygu+Ph?+qP=@UNECK3O962Eq+%Yu68&&~T{QGcn;4bGv{Tlj$&ZY^AQD_D z$W(y7je?I#oP;{o_;Kg&VC>@a{;`MueKkD7r`|i5y#^uYx5%UyWWZNywCgg-5?nFR z3AAZCoC*|L9I@(9SmMs&+H0$+>Pxk8as@3F&qSQ~-wfu&Tfs8z36%{U&U^} zE3}ZjXrcRTdj-5U{YX>06N+7+^3oNAoK)hYQgHX^(2Kcw#$&s4r zAaZMQEG_|YL!ovJ4#;G-stqH*(r{dFP~ClSB2rru2i5%;@vXsMr+~RXK1&Q?4Jz(X zgH$Tm0aj7gg5vd`KwB@V0b~>fjVxTf4q|A4!5I9RkFbcyGIlm*Fn#jsGpjO8_9LPD zTX%CUWhx~8b#phmI>gV?;-=L|;CdMS{B-pT7t@1y{DwoWCIyO^};#Vz2 zu>3)oU?t0M18Zr(+T@VP0#i==Zu=0Ji34p6NUQgCCW!Xs8_ED?3u&on?(NZ7#JgGx zldshcZ(5bneaI`-chfV&YHA(|*Z#G)uTHXK`(rz?qI+$i4V$(5yk=nLDc5k96K_t5QhuTE{}vI{tXV36g;4`On;%>%juw zeEjQ3&8!%#{xmdmGjMKsg7E|C5!`#$r$W zAv(OjE`B*F0Z1)wQ(M>h^I$!|Dko>-cXR?O#x1@ScMtl%0E#NbQp=e`BVwpYGjg&A zWX|1b2t3j4A_rIx5BwPh`VTr(#{jJ2YryGVyilWq@2v}1eV0?J16*@f64SXA9oqWez-Dp2Th$1B?)7GRVyUi15W9v&78)cFadh` z!H_v+10A&DBJVUQHZ5AVlwH1cw2MT;ivGvVG|`rGFk@_XcQRdddE< z?-we=K_?uB0<9|NQY_9afL_k8D&L5DU}#3RJa|=fFf=%Lf_QB<8e-Jftl-M~q;0I6 zsea+Pt;~?X=a7(ZV9eZJy0=r)2W@SUGwv=N$&3E-9d zJFmZwm&+HeRmsE&>Ym^DT-AGDqr{v})flj<@zw_xn&K7Fcd8=2x9@8Z5_t>95Iz;z z#og_UK;L$RMeGq%vG)FWLH1`@4}iz*3^0#P2RjlLo1XXrRINx z3tOu9eQ5sYh5qwhE(xB<6(gMmfUnMpIvGECr;`Rq`;7XeJE|PpjNr$>d+)s8aDD3i zp?PcUYNG`12BC70VW>X@3UYzy@nbB;k>z6QpbWuc8o5whqJ#4M@zE4uZVr^ncUF2c zlsJIOewip92nHclB!H=q!w@}^_bN+=J<|MAfcoJ0Z0@~ju}2pfs!}KaE;;!qc~*6# zVa6a??w8d@OH}{Ng#ZFEcW+MPp~xv%@J%%n4?QO2^6j;l*UI600-=qeeFF3FoEJ^IwFv7=Qse~ ztU{UfJAij};@{)u&a?4{oUJSjI?v$pgpFfYr|XgReR6`DBVf6mb9tc0&HyNC35<#r zy3YFH@$0MZpDA+T8qpgVr&^qSFs2DR72z7MWfE``FTzK$Ami~7Is+j3i-UQI(6yGF zMkfSy)_NW4#g;|XKiye_aG==G1JU^>Y$Y%`2!cTLyezg4&MP+bmqNlH8E#%F zhxiBfm1W1 z-=AJnC#HKgi?5Hswo6F7P>>#jW+L+$bGL!(9%LN;mW^yQwPAI?D*mVdhW4!D8L-r4aV~PnV|skcYuOomTs}Sf#Z?}@)Rs+ zM2nD$GK9gEU?a=s7)-uMJp0GFM#tqVASF9oWV&QWT;qDIH@Lf|R$?;5=>ig4t9G(P z7+co2XnT!_d5oR=5=)H{>iiA3_e6203Id`7xLx`{jQ`Q8!cq3G2@`u$U}>NuL5!zW z4O~sTalD4FQYH>rDa8LXq8iwpqbolcdOv1$zxpC{htz|WxG6K*C?%Hoa}P+zUMJkQ zt>QAiB&=h$p2)%

O{_0Syb1v!xP-ojxqBk>NmN)@%p?! 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

    E?M5O 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

    I=y5Ak)iSAs!0lqIP(A*>^ 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 literal 0 HcmV?d00001 diff --git a/doc/blastradiusextinfo.png b/doc/blastradiusextinfo.png new file mode 100644 index 0000000000000000000000000000000000000000..162e65a244bef9f7478a733a64235ab5eb09cab0 GIT binary patch literal 456720 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 u%P}%cS@mz`> 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

  1. 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%0AVeRlelXtstwq82GXS>HNqNP=0FvK4u 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 graph.svg -[...]$ terraform graph | blast-radius --json > graph.json +[...]$ blast-radius --graph graph --newsvg [path of terraform directory] +[...]$ blast-radius --graph graph --json [path of terraform directory] + + ```` +here graph is the file containing the output of terraform graph 2. `javascript` and `css`. You can find these in the `.../blastradius/server/static` directory. Copy these files to an appropriate location, and ammend the following includes to reflect those locations. + for blastradius extended: + ````html - + ```` 3. A uniquely identified DOM element, where the `` should appear, and a call to `blastradius(...)` somewhere after (usually at the end of the `` document. - ````html +````html
    ```` diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index ba6ca9d..d684995 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -32,6 +32,10 @@ cd /data-rw # Reinitialize for some reason terraform init +terraform plan --out tfplan.binary + +terraform show -json tfplan.binary > tfplan.json + # it's possible that we're in a sub-directory. leave. cd /data-rw diff --git a/requirements.txt b/requirements.txt index f322210..e1bbb8b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ Flask==1.0.3 beautifulsoup4==4.7.1 ply>=3.11 pyhcl==0.3.12 + diff --git a/setup.py b/setup.py index 04e53e9..a91605a 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='blastradius', - version='0.1.25', + version='0.1.25.0', description='Interactive Terraform graph visualizations', long_description=open('README.md').read(), long_description_content_type='text/markdown', @@ -22,4 +22,7 @@ packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), scripts=['bin/blast-radius'], install_requires=reqs, + data_files=[('blastradius/server/templates', ['blastradius/server/templates/error.html', 'blastradius/server/templates/index.html']), + ('blastradius/server/static/css', ['blastradius/server/static/css/bootstrap.min.css', 'blastradius/server/static/css/selectize.css','blastradius/server/static/css/style.css']), + ('blastradius/server/static/js', ['blastradius/server/static/js/blast-radius.js', 'blastradius/server/static/js/blast-radius-ext.js','blastradius/server/static/js/bootstrap.min.js','blastradius/server/static/js/categories.js','blastradius/server/static/js/d3-tip.js','blastradius/server/static/js/d3.v4.js','blastradius/server/static/js/d3.v4.min.js','blastradius/server/static/js/fontawesome-all.min.js','blastradius/server/static/js/jquery.slim.min.js','blastradius/server/static/js/selectize.js','blastradius/server/static/js/svg-pan-zoom.js']), ], ) From 7567708531fed5cc70baf5eafa8f5ea184565e10 Mon Sep 17 00:00:00 2001 From: VishwaKumar Patil Date: Fri, 4 Sep 2020 11:31:48 +0530 Subject: [PATCH 02/25] npm packaging (#3) * modified blast-radius * initial npm packaging * relocated packages to root folder * enable svg zoom via flag * updated conditions for control button event listners * updated conditions for control button event listners & added disableSvgZoom, disableTooltip flags * refactored folder structure * Updated paths * relocated indexjs entry file * modified blast-radius * Added new terraform actions functionality * removed updating state with color function * fix polygon count issue and code refactoe * Fixed code for ibm resource types * added custom light colors * added new demo files and few modifications * code fix Co-authored-by: nibhart1 Co-authored-by: VishwaKumar --- .gitignore | 4 + Dockerfile | 1 - index.js | 3 + npm/example/demo-1/demo-1.json | 2450 ++++++++++++++++++++++ npm/example/demo-1/demo-1.svg | 669 ++++++ npm/example/demo-1/demonew-1.svg | 757 +++++++ npm/example/demo-1/simple-demo-1.json | 659 ++++++ npm/example/demo-1/simple-demo-1.svg | 230 ++ npm/example/demo-2/demo-2.json | 2799 +++++++++++++++++++++++++ npm/example/demo-2/demo-2.svg | 669 ++++++ npm/example/demo-2/demonew-2.svg | 750 +++++++ npm/example/demo-2/simple-demo-2.json | 536 +++++ npm/example/demo-2/simple-demo-2.svg | 231 ++ npm/example/demo-3/demo-3.json | 1922 +++++++++++++++++ npm/example/demo-3/demo-3.svg | 669 ++++++ npm/example/demo-3/demonew-3.svg | 757 +++++++ npm/example/demo-3/simple-demo-3.json | 549 +++++ npm/example/demo-3/simple-demo-3.svg | 231 ++ npm/example/demo-4/demo-4.json | 339 +++ npm/example/demo-4/demo-4.svg | 208 ++ npm/example/demo-4/demonew-4.svg | 757 +++++++ npm/example/index.html | 229 ++ npm/src/blast-radius.js | 807 +++++++ npm/src/categories.js | 2513 ++++++++++++++++++++++ npm/src/resource-types.js | 24 + package.json | 40 + webpack.config.js | 10 + 27 files changed, 18812 insertions(+), 1 deletion(-) create mode 100644 index.js create mode 100644 npm/example/demo-1/demo-1.json create mode 100644 npm/example/demo-1/demo-1.svg create mode 100644 npm/example/demo-1/demonew-1.svg create mode 100644 npm/example/demo-1/simple-demo-1.json create mode 100644 npm/example/demo-1/simple-demo-1.svg create mode 100644 npm/example/demo-2/demo-2.json create mode 100644 npm/example/demo-2/demo-2.svg create mode 100644 npm/example/demo-2/demonew-2.svg create mode 100644 npm/example/demo-2/simple-demo-2.json create mode 100644 npm/example/demo-2/simple-demo-2.svg create mode 100644 npm/example/demo-3/demo-3.json create mode 100644 npm/example/demo-3/demo-3.svg create mode 100644 npm/example/demo-3/demonew-3.svg create mode 100644 npm/example/demo-3/simple-demo-3.json create mode 100644 npm/example/demo-3/simple-demo-3.svg create mode 100644 npm/example/demo-4/demo-4.json create mode 100644 npm/example/demo-4/demo-4.svg create mode 100644 npm/example/demo-4/demonew-4.svg create mode 100644 npm/example/index.html create mode 100644 npm/src/blast-radius.js create mode 100644 npm/src/categories.js create mode 100644 npm/src/resource-types.js create mode 100644 package.json create mode 100644 webpack.config.js diff --git a/.gitignore b/.gitignore index f1b0d54..f8434f4 100644 --- a/.gitignore +++ b/.gitignore @@ -102,3 +102,7 @@ venv.bak/ # mypy .mypy_cache/ + +# node_modules +node_modules +package-lock.json \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 03520f6..df4191b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,6 @@ RUN ls WORKDIR /src COPY . . RUN pip install -e . - WORKDIR /data ENTRYPOINT ["/bin/docker-entrypoint.sh"] diff --git a/index.js b/index.js new file mode 100644 index 0000000..dc9bb5b --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +import blastradius from "./npm/src/blast-radius"; +export { blastradius }; +window.blastradius = blastradius; \ No newline at end of file diff --git a/npm/example/demo-1/demo-1.json b/npm/example/demo-1/demo-1.json new file mode 100644 index 0000000..607e81a --- /dev/null +++ b/npm/example/demo-1/demo-1.json @@ -0,0 +1,2450 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "edge_0", + "target": "[root] provider.template" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip1", + "svg_id": "edge_1", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip2", + "svg_id": "edge_2", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_3", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_4", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_5", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_6", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_7", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_8", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_9", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_10", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_11", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_12", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_13", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_14", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_listener.lb1-listener", + "svg_id": "edge_15", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool.lb1-pool", + "svg_id": "edge_16", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_17", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_18", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_19", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_20", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_21", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_22", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_23", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_24", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_25", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_26", + "target": "[root] var.ssh_public_key" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet1", + "svg_id": "edge_27", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet2", + "svg_id": "edge_28", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_29", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_30", + "target": "[root] var.vpc_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_31", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_32", + "target": "[root] var.zone1" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_33", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_34", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_35", + "target": "[root] var.zone2" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_36", + "target": "[root] var.zone2_cidr" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_37", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_38", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_39", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_40", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_41", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_42", + "target": "[root] output.FloatingIP-1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_43", + "target": "[root] output.FloatingIP-2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_44", + "target": "[root] output.LB-Hostname" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-1", + "svg_id": "edge_45", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-2", + "svg_id": "edge_46", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] output.LB-Hostname", + "svg_id": "edge_47", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_48", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_49", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_50", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_51", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_52", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm", + "svg_id": "edge_53", + "target": "[root] var.ibmcloud_region" + }, + { + "edge_type": 1, + "source": "[root] provider.template (close)", + "svg_id": "edge_54", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_55", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_56", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_57", + "target": "[root] provider.template (close)" + }, + { + "edge_type": 3, + "source": "[root] var.zone1", + "svg_id": "edge_58", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 3, + "source": "[root] var.zone2", + "svg_id": "edge_59", + "target": "[root] var.zone2_cidr" + } + ], + "nodes": [ + { + "apply": { + "instances": [ + { + "attributes": { + "base64_encode": false, + "gzip": false, + "id": "708834281", + "part": [ + { + "content": "#cloud-config\npackages:\n - nginx\n\n", + "content_type": "", + "filename": "", + "merge_type": "" + } + ], + "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" + }, + "schema_version": 0 + } + ], + "mode": "data", + "name": "cloud-init-apptier", + "provider": "provider.template", + "type": "template_cloudinit_config" + }, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] data.template_cloudinit_config.cloud-init-apptier", + "module": "root", + "modules": [ + "root" + ], + "plan": "data-source", + "resource_name": "cloud-init-apptier", + "simple_name": "data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "node_0", + "type": "template_cloudinit_config" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address": "52.116.132.120", + "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "name": "fip4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip4", + "resource_status": "available", + "status": "available", + "target": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", + "timeouts": null, + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_instance.instance1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "floatingip1", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip4", + "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" + }, + "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "fip1", + "timeouts": null + }, + "after_unknown": { + "address": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "target": true, + "zone": true + }, + "before": null + }, + "mode": "managed", + "name": "floatingip1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "name": "fip1", + "timeouts": null + } + }, + "resource_name": "floatingip1", + "simple_name": "ibm_is_floating_ip.floatingip1", + "svg_id": "node_1", + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address": "169.47.92.133", + "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "name": "fip5", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip5", + "resource_status": "available", + "status": "available", + "target": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", + "timeouts": null, + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_instance.instance2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "floatingip2", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip5", + "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" + }, + "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip2", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "fip2", + "timeouts": null + }, + "after_unknown": { + "address": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "target": true, + "zone": true + }, + "before": null + }, + "mode": "managed", + "name": "floatingip2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "name": "fip2", + "timeouts": null + } + }, + "resource_name": "floatingip2", + "simple_name": "ibm_is_floating_ip.floatingip2", + "svg_id": "node_2", + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "boot_volume": [ + { + "encryption": "", + "iops": 3000, + "name": "volume-attachment", + "profile": "general-purpose", + "size": 100 + } + ], + "generation": null, + "gpu": [], + "id": "0717_c94d2de2-9ae0-43ba-854a-50ce878742da", + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "memory": 4, + "name": "instance4", + "network_interfaces": [], + "primary_network_interface": [ + { + "id": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", + "name": "promotion-proton-semicolon-taking-unworldly-washout", + "port_speed": 0, + "primary_ipv4_address": "172.16.1.5", + "security_groups": [ + "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" + ], + "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" + } + ], + "profile": "cx2-2x4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::instance:0717_c94d2de2-9ae0-43ba-854a-50ce878742da", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "instance4", + "resource_status": "running", + "status": "running", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "vcpu": [ + { + "architecture": "amd64", + "count": 2 + } + ], + "volume_attachments": [ + { + "id": "0717-8c414447-bdb1-40ec-9d2c-07c3505acc75", + "name": "volume-attachment", + "volume_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-4966cffa-6483-11ea-97f2-feff0b334b12", + "volume_id": "r006-4966cffa-6483-11ea-97f2-feff0b334b12", + "volume_name": "living-unrated-jawed-crummy-smuggling-mankind" + } + ], + "volumes": [], + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet1", + "ibm_is_vpc.vpc1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "instance1", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance4", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet1.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_instance.instance1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance1", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance1", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-1" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": true, + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true, + "subnet": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "instance1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance1", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-1" + } + }, + "resource_name": "instance1", + "simple_name": "ibm_is_instance.instance1", + "svg_id": "node_3", + "type": "ibm_is_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "boot_volume": [ + { + "encryption": "", + "iops": 3000, + "name": "volume-attachment", + "profile": "general-purpose", + "size": 100 + } + ], + "generation": null, + "gpu": [], + "id": "0727_ce10c7f4-6795-4b79-ae26-49b1f8cbd024", + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "memory": 4, + "name": "instance5", + "network_interfaces": [], + "primary_network_interface": [ + { + "id": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", + "name": "penny-collector-bling-scurvy-ravishing-gradation", + "port_speed": 0, + "primary_ipv4_address": "172.16.2.5", + "security_groups": [ + "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" + ], + "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + } + ], + "profile": "cx2-2x4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::instance:0727_ce10c7f4-6795-4b79-ae26-49b1f8cbd024", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "instance5", + "resource_status": "running", + "status": "running", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "vcpu": [ + { + "architecture": "amd64", + "count": 2 + } + ], + "volume_attachments": [ + { + "id": "0727-3a8e8f62-ba60-4d30-8296-9f921228782f", + "name": "volume-attachment", + "volume_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-49596fbb-6483-11ea-983f-feff0b0a4b07", + "volume_id": "r006-49596fbb-6483-11ea-983f-feff0b0a4b07", + "volume_name": "humorist-gratify-unfounded-scale-renter-strangely" + } + ], + "volumes": [], + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "instance2", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance5", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet2.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_instance.instance2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance2", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance2", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-2" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": true, + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true, + "subnet": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "instance2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance2", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-2" + } + }, + "resource_name": "instance2", + "simple_name": "ibm_is_instance.instance2", + "svg_id": "node_4", + "type": "ibm_is_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "hostname": "f8983743-us-south.lb.appdomain.cloud", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb", + "operating_status": "online", + "private_ips": [ + "172.16.1.4", + "172.16.2.4" + ], + "public_ips": [ + "52.116.136.89", + "52.116.200.44" + ], + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3-lb", + "status": "active", + "subnets": [ + "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + ], + "timeouts": null, + "type": "public" + }, + "dependencies": [ + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1", + "provider": "provider.ibm", + "type": "ibm_is_lb" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}-lb", + "subnets": [ + "${ibm_is_subnet.subnet1.id}", + "${ibm_is_subnet.subnet2.id}" + ] + }, + "group": 20000, + "label": "[root] ibm_is_lb.lb1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb.lb1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "vpc-fs2020-lab-lb", + "timeouts": null, + "type": "public" + }, + "after_unknown": { + "hostname": true, + "id": true, + "operating_status": true, + "private_ips": true, + "public_ips": true, + "resource_controller_url": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "status": true, + "subnets": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb", + "values": { + "name": "vpc-fs2020-lab-lb", + "timeouts": null, + "type": "public" + } + }, + "resource_name": "lb1", + "simple_name": "ibm_is_lb.lb1", + "svg_id": "node_5", + "type": "ibm_is_lb" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "certificate_instance": null, + "connection_limit": 0, + "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "port": 80, + "protocol": "http", + "status": "active", + "timeouts": null + }, + "dependencies": [ + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool", + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-listener", + "provider": "provider.ibm", + "type": "ibm_is_lb_listener" + }, + "cluster": "root", + "definition": { + "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", + "lb": "${ibm_is_lb.lb1.id}", + "port": "80", + "protocol": "http" + }, + "group": 20000, + "label": "[root] ibm_is_lb_listener.lb1-listener", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_listener.lb1-listener", + "change": { + "actions": [ + "create" + ], + "after": { + "certificate_instance": null, + "connection_limit": null, + "port": 80, + "protocol": "http", + "timeouts": null + }, + "after_unknown": { + "default_pool": true, + "id": true, + "lb": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1-listener", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_listener", + "values": { + "certificate_instance": null, + "connection_limit": null, + "port": 80, + "protocol": "http", + "timeouts": null + } + }, + "resource_name": "lb1-listener", + "simple_name": "ibm_is_lb_listener.lb1-listener", + "svg_id": "node_6", + "type": "ibm_is_lb_listener" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_port": 0, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "provisioning_status": "active", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "dependencies": [ + "ibm_is_lb.lb1", + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool" + }, + "cluster": "root", + "definition": { + "algorithm": "round_robin", + "health_delay": "5", + "health_monitor_url": "/", + "health_retries": "2", + "health_timeout": "2", + "health_type": "http", + "lb": "${ibm_is_lb.lb1.id}", + "name": "${var.vpc_name}-lb1-pool", + "protocol": "http" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool.lb1-pool", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool.lb1-pool", + "change": { + "actions": [ + "create" + ], + "after": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "name": "vpc-fs2020-lab-lb1-pool", + "protocol": "http", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "after_unknown": { + "health_monitor_port": true, + "id": true, + "lb": true, + "provisioning_status": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1-pool", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool", + "values": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "name": "vpc-fs2020-lab-lb1-pool", + "protocol": "http", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + } + }, + "resource_name": "lb1-pool", + "simple_name": "ibm_is_lb_pool.lb1-pool", + "svg_id": "node_7", + "type": "ibm_is_lb_pool" + }, + { + "apply": { + "each": "list", + "instances": [ + { + "attributes": { + "health": "ok", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.1.5", + "timeouts": null, + "weight": 50 + }, + "dependencies": [ + "ibm_is_instance.instance1", + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool" + ], + "index_key": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool-member1", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", + "change": { + "actions": [ + "create" + ], + "after": { + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "lb": true, + "pool": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": null + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member1", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "node_8", + "type": "ibm_is_lb_pool_member" + }, + { + "apply": { + "each": "list", + "instances": [ + { + "attributes": { + "health": "ok", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-81ceccac-212d-491e-b386-d0ad57f53be7", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-81ceccac-212d-491e-b386-d0ad57f53be7", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.2.5", + "timeouts": null, + "weight": 50 + }, + "dependencies": [ + "ibm_is_instance.instance2", + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool" + ], + "index_key": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool-member2", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", + "change": { + "actions": [ + "create" + ], + "after": { + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "lb": true, + "pool": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": null + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member2", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "node_9", + "type": "ibm_is_lb_pool_member" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "dependencies": [ + "ibm_is_floating_ip.floatingip1", + "ibm_is_floating_ip.floatingip2", + "ibm_is_instance.instance1", + "ibm_is_instance.instance2", + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "22", + "port_min": "22" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "change": { + "actions": [ + "create" + ], + "after": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "after_unknown": { + "group": true, + "icmp": [], + "id": true, + "rule_id": true, + "tcp": [ + {} + ], + "udp": [] + }, + "before": null + }, + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_22", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "node_10", + "type": "ibm_is_security_group_rule" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "dependencies": [ + "ibm_is_floating_ip.floatingip1", + "ibm_is_floating_ip.floatingip2", + "ibm_is_instance.instance1", + "ibm_is_instance.instance2", + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "80", + "port_min": "80" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "change": { + "actions": [ + "create" + ], + "after": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "after_unknown": { + "group": true, + "icmp": [], + "id": true, + "rule_id": true, + "tcp": [ + {} + ], + "udp": [] + }, + "before": null + }, + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_80", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "node_11", + "type": "ibm_is_security_group_rule" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", + "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "length": 4096, + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "ssh10", + "type": "rsa" + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "ssh1", + "provider": "provider.ibm", + "type": "ibm_is_ssh_key" + }, + "cluster": "root", + "definition": { + "name": "ssh10", + "public_key": "${var.ssh_public_key}" + }, + "group": 20000, + "label": "[root] ibm_is_ssh_key.ssh1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_ssh_key.ssh1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "ssh1", + "public_key": "" + }, + "after_unknown": { + "fingerprint": true, + "id": true, + "length": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "type": true + }, + "before": null + }, + "mode": "managed", + "name": "ssh1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_ssh_key", + "values": { + "name": "ssh1", + "public_key": "" + } + }, + "resource_name": "ssh1", + "simple_name": "ibm_is_ssh_key.ssh1", + "svg_id": "node_12", + "type": "ibm_is_ssh_key" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "ipv6_cidr_block": "", + "name": "subnet1", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet1", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "subnet1", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap1}" + ], + "ipv4_cidr_block": "${var.zone1_cidr}", + "name": "subnet1", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet1", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "name": "subnet1", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "name": "subnet1", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + } + }, + "resource_name": "subnet1", + "simple_name": "ibm_is_subnet.subnet1", + "svg_id": "node_13", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "ipv6_cidr_block": "", + "name": "subnet2", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet2", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "subnet2", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap2}" + ], + "ipv4_cidr_block": "${var.zone2_cidr}", + "name": "subnet2", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet2", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "name": "subnet2", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-2" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "name": "subnet2", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-2" + } + }, + "resource_name": "subnet2", + "simple_name": "ibm_is_subnet.subnet2", + "svg_id": "node_14", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address_prefix_management": "auto", + "classic_access": false, + "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "is_default": null, + "name": "vpc-fs2020-lab3", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc1", + "provider": "provider.ibm", + "type": "ibm_is_vpc" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc.vpc1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.vpc1", + "change": { + "actions": [ + "create" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "vpc-fs2020-lab", + "tags": null, + "timeouts": null + }, + "after_unknown": { + "default_network_acl": true, + "default_security_group": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "vpc-fs2020-lab", + "tags": null, + "timeouts": null + } + }, + "resource_name": "vpc1", + "simple_name": "ibm_is_vpc.vpc1", + "svg_id": "node_15", + "type": "ibm_is_vpc" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "cidr": "172.16.1.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", + "name": "vpc-ap1", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc-ap1", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone1_cidr}", + "name": "vpc-ap1", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap1", + "change": { + "actions": [ + "create" + ], + "after": { + "cidr": "172.16.1.0/24", + "name": "vpc-ap1", + "zone": "us-south-1" + }, + "after_unknown": { + "has_subnets": true, + "id": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc-ap1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.1.0/24", + "name": "vpc-ap1", + "zone": "us-south-1" + } + }, + "resource_name": "vpc-ap1", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "node_16", + "type": "ibm_is_vpc_address_prefix" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "cidr": "172.16.2.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", + "name": "vpc-ap2", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc-ap2", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone2_cidr}", + "name": "vpc-ap2", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap2", + "change": { + "actions": [ + "create" + ], + "after": { + "cidr": "172.16.2.0/24", + "name": "vpc-ap2", + "zone": "us-south-2" + }, + "after_unknown": { + "has_subnets": true, + "id": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc-ap2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.2.0/24", + "name": "vpc-ap2", + "zone": "us-south-2" + } + }, + "resource_name": "vpc-ap2", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "node_17", + "type": "ibm_is_vpc_address_prefix" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", + "definition": { + "value": "${ibm_is_floating_ip.floatingip1.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-1", + "simple_name": "output.FloatingIP-1", + "svg_id": "node_18", + "type": "output" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", + "definition": { + "value": "${ibm_is_floating_ip.floatingip2.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-2", + "simple_name": "output.FloatingIP-2", + "svg_id": "node_19", + "type": "output" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", + "definition": { + "value": "http://${ibm_is_lb.lb1.hostname}" + }, + "group": 20000, + "label": "[root] output.LB-Hostname", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "LB-Hostname", + "simple_name": "output.LB-Hostname", + "svg_id": "node_20", + "type": "output" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_21", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template", + "svg_id": "node_22", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] provider.ibm_var_", + "definition": { + "default": "us-south", + "description": "Preferred IBM Cloud region to use for your infrastructure" + }, + "group": 20000, + "label": "[root] var.ibmcloud_region", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ibmcloud_region", + "simple_name": "var.ibmcloud_region", + "svg_id": "node_23", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "description": "OS Image ID to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.image", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "image", + "simple_name": "var.image", + "svg_id": "node_24", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "cx2-2x4", + "description": "Instance profile to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.profile", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "profile", + "simple_name": "var.profile", + "svg_id": "node_25", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", + "definition": { + "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "description": "SSH Public Key contents to be used" + }, + "group": 20000, + "label": "[root] var.ssh_public_key", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ssh_public_key", + "simple_name": "var.ssh_public_key", + "svg_id": "node_26", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", + "definition": { + "default": "vpc-fs2020-lab3", + "description": "Name of your VPC" + }, + "group": 20000, + "label": "[root] var.vpc_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "vpc_name", + "simple_name": "var.vpc_name", + "svg_id": "node_27", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "us-south-1", + "description": "Define the 1st zone of the region" + }, + "group": 20000, + "label": "[root] var.zone1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1", + "simple_name": "var.zone1", + "svg_id": "node_28", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "172.16.1.0/24", + "description": "CIDR block to be used for zone 1" + }, + "group": 20000, + "label": "[root] var.zone1_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1_cidr", + "simple_name": "var.zone1_cidr", + "svg_id": "node_29", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "us-south-2", + "description": "Define the 2nd zone of the region" + }, + "group": 20000, + "label": "[root] var.zone2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2", + "simple_name": "var.zone2", + "svg_id": "node_30", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "172.16.2.0/24", + "description": "CIDR block to be used for zone 2" + }, + "group": 20000, + "label": "[root] var.zone2_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2_cidr", + "simple_name": "var.zone2_cidr", + "svg_id": "node_31", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_32", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_33", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template (close)", + "svg_id": "node_34", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_35", + "type": "" + } + ] +} + diff --git a/npm/example/demo-1/demo-1.svg b/npm/example/demo-1/demo-1.svg new file mode 100644 index 0000000..47af9a4 --- /dev/null +++ b/npm/example/demo-1/demo-1.svg @@ -0,0 +1,669 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + +cloud-init-apptier + + + +[root] provider.template + +provider + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/npm/example/demo-1/demonew-1.svg b/npm/example/demo-1/demonew-1.svg new file mode 100644 index 0000000..b847b20 --- /dev/null +++ b/npm/example/demo-1/demonew-1.svg @@ -0,0 +1,757 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + + + + +cloud-init-apptier + + + +[root] provider.template + +provider + + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + + ++ + + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + + ++ + + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + + ++ + + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + + ++ + + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + + ++ + + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + + ++ + + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + + ++ + + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + + ++ + + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + + ++ + + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + + ++ + + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + + ++ + + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/npm/example/demo-1/simple-demo-1.json b/npm/example/demo-1/simple-demo-1.json new file mode 100644 index 0000000..b463be6 --- /dev/null +++ b/npm/example/demo-1/simple-demo-1.json @@ -0,0 +1,659 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_0", + "target": "[root] ibm_iam_authorization_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_1", + "target": "[root] ibm_kp_key.test" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_2", + "target": "[root] ibm_resource_instance.cos_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_iam_authorization_policy.policy", + "svg_id": "edge_3", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_4", + "target": "[root] ibm_resource_instance.kp_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_5", + "target": "[root] var.key_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_6", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_7", + "target": "[root] var.cos_name" + }, + { + "edge_type": 2, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_8", + "target": "[root] var.location" + }, + { + "edge_type": 2, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_9", + "target": "[root] var.pln" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_10", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_11", + "target": "[root] var.kp_name" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_12", + "target": "[root] ibm_cos_bucket.flex-us-south" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_13", + "target": "[root] ibm_cos_bucket.flex-us-south" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_14", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_15", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 3, + "source": "[root] var.cos_name", + "svg_id": "edge_16", + "target": "[root] var.location" + }, + { + "edge_type": 3, + "source": "[root] var.location", + "svg_id": "edge_17", + "target": "[root] var.pln" + } + ], + "nodes": [ + { + "apply": { + "instances": [ + { + "attributes": { + "bucket_name": "abuck3", + "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c:bucket:abuck3", + "cross_region_location": null, + "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c:bucket:abuck3:meta:rl:us-south", + "key_protect": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", + "region_location": "us-south", + "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", + "s3_endpoint_private": "s3.private.us-south.cloud-object-storage.appdomain.cloud", + "s3_endpoint_public": "s3.us-south.cloud-object-storage.appdomain.cloud", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + }, + "dependencies": [ + "ibm_kp_key.test", + "ibm_resource_instance.cos_instance", + "ibm_resource_instance.kp_instance" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "flex-us-south", + "provider": "provider.ibm", + "type": "ibm_cos_bucket" + }, + "cluster": "root", + "definition": { + "bucket_name": "abuck3", + "key_protect": "${ibm_kp_key.test.id}", + "region_location": "us-south", + "resource_instance_id": "${ibm_resource_instance.cos_instance.id}", + "storage_class": "flex" + }, + "group": 20000, + "label": "[root] ibm_cos_bucket.flex-us-south", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cos_bucket.flex-us-south", + "change": { + "actions": [ + "create" + ], + "after": { + "bucket_name": "abuck3", + "cross_region_location": null, + "region_location": "us-south", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_protect": true, + "resource_instance_id": true, + "s3_endpoint_private": true, + "s3_endpoint_public": true + }, + "before": null + }, + "mode": "managed", + "name": "flex-us-south", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cos_bucket", + "values": { + "bucket_name": "abuck3", + "cross_region_location": null, + "region_location": "us-south", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + } + }, + "resource_name": "flex-us-south", + "simple_name": "ibm_cos_bucket.flex-us-south", + "svg_id": "node_0", + "type": "ibm_cos_bucket" + }, + { + "apply": null, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] ibm_iam_authorization_policy.policy", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "policy", + "simple_name": "ibm_iam_authorization_policy.policy", + "svg_id": "node_1", + "type": "ibm_iam_authorization_policy" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", + "encrypted_nonce": null, + "id": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", + "iv_value": "", + "key_id": "1776b7ca-c34b-443b-a455-17344ad399ca", + "key_name": "test_key2", + "key_protect_id": "a2e6868e-bae8-4894-8931-837f94597753", + "payload": "", + "resource_controller_url": "https://cloud.ibm.com/services/kms/crn%3Av1%3Abluemix%3Apublic%3Akms%3Aus-south%3Aa%2Fb9687c7011984685a20a8d25dfbea11b%3Aa2e6868e-bae8-4894-8931-837f94597753%3A%3A", + "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", + "resource_group_name": null, + "resource_name": "test_key2", + "resource_status": null, + "standard_key": false, + "timeouts": null + }, + "dependencies": [ + "ibm_resource_instance.kp_instance" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "test", + "provider": "provider.ibm", + "type": "ibm_kp_key" + }, + "cluster": "root", + "definition": { + "key_name": "${var.key_name}", + "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", + "standard_key": false + }, + "group": 20000, + "label": "[root] ibm_kp_key.test", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_kp_key.test", + "change": { + "actions": [ + "create" + ], + "after": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "test_key2", + "standard_key": false, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_id": true, + "key_protect_id": true, + "payload": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true + }, + "before": null + }, + "mode": "managed", + "name": "test", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_kp_key", + "values": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "test_key2", + "standard_key": false, + "timeouts": null + } + }, + "resource_name": "test", + "simple_name": "ibm_kp_key.test", + "svg_id": "node_2", + "type": "ibm_kp_key" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", + "guid": "0eda139d-53de-432f-bff7-182a32d16a3c", + "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", + "location": "global", + "name": "test_cos2", + "parameters": null, + "plan": "standard", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", + "resource_group_id": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "", + "resource_name": "test_cos2", + "resource_status": "active", + "service": "cloud-object-storage", + "service_endpoints": null, + "status": "active", + "tags": null, + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "cos_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "definition": { + "location": "${var.location}", + "name": "${var.cos_name}", + "plan": "${var.pln}", + "service": "cloud-object-storage" + }, + "group": 20000, + "label": "[root] ibm_resource_instance.cos_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.cos_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "global", + "name": "test_cos2", + "parameters": null, + "plan": "standard", + "resource_group_id": null, + "service": "cloud-object-storage", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "global", + "name": "test_cos2", + "parameters": null, + "plan": "standard", + "resource_group_id": null, + "service": "cloud-object-storage", + "service_endpoints": null, + "tags": null, + "timeouts": null + } + }, + "resource_name": "cos_instance", + "simple_name": "ibm_resource_instance.cos_instance", + "svg_id": "node_3", + "type": "ibm_resource_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753::", + "guid": "a2e6868e-bae8-4894-8931-837f94597753", + "id": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753::", + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753::", + "resource_group_id": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "", + "resource_name": "test_kp2", + "resource_status": "active", + "service": "kms", + "service_endpoints": null, + "status": "active", + "tags": null, + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "kp_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "definition": { + "location": "us-south", + "name": "${var.kp_name}", + "plan": "tiered-pricing", + "service": "kms" + }, + "group": 20000, + "label": "[root] ibm_resource_instance.kp_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.kp_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "kp_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "tags": null, + "timeouts": null + } + }, + "resource_name": "kp_instance", + "simple_name": "ibm_resource_instance.kp_instance", + "svg_id": "node_4", + "type": "ibm_resource_instance" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_5", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "test_cos2" + }, + "group": 20000, + "label": "[root] var.cos_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "cos_name", + "simple_name": "var.cos_name", + "svg_id": "node_6", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_kp_key.test_var_", + "definition": { + "default": "test_key2" + }, + "group": 20000, + "label": "[root] var.key_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "key_name", + "simple_name": "var.key_name", + "svg_id": "node_7", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.kp_instance_var_", + "definition": { + "default": "test_kp2" + }, + "group": 20000, + "label": "[root] var.kp_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "kp_name", + "simple_name": "var.kp_name", + "svg_id": "node_8", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "global" + }, + "group": 20000, + "label": "[root] var.location", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "location", + "simple_name": "var.location", + "svg_id": "node_9", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "standard" + }, + "group": 20000, + "label": "[root] var.pln", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "pln", + "simple_name": "var.pln", + "svg_id": "node_10", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_11", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_12", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_13", + "type": "" + } + ] +} diff --git a/npm/example/demo-1/simple-demo-1.svg b/npm/example/demo-1/simple-demo-1.svg new file mode 100644 index 0000000..e1f1e60 --- /dev/null +++ b/npm/example/demo-1/simple-demo-1.svg @@ -0,0 +1,230 @@ + + + + + + +%3 + + +cluster[root] ibm_resource_instance.cos_instance_var_ + + +cluster[root] ibm_kp_key.test_var_ + + +cluster[root] ibm_resource_instance.kp_instance_var_ + + + +[root] ibm_cos_bucket.flex-us-south + +ibm_cos_bucket + + ++ + + +flex-us-south + + + +[root] ibm_kp_key.test + +ibm_kp_key + + ++ + + +test + + + +[root] ibm_cos_bucket.flex-us-south->[root] ibm_kp_key.test + + + + + +[root] ibm_resource_instance.cos_instance + +ibm_resource_instance + + ++ + + +cos_instance + + + +[root] ibm_cos_bucket.flex-us-south->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_resource_instance.kp_instance + +ibm_resource_instance + + ++ + + +kp_instance + + + +[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance + + + + + +[root] var.key_name + +var + + +key_name + + + +[root] ibm_kp_key.test->[root] var.key_name + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_resource_instance.cos_instance->[root] provider.ibm + + + + + +[root] var.cos_name + +var + + +cos_name + + + +[root] ibm_resource_instance.cos_instance->[root] var.cos_name + + + + + +[root] ibm_resource_instance.kp_instance->[root] provider.ibm + + + + + +[root] var.kp_name + +var + + +kp_name + + + +[root] ibm_resource_instance.kp_instance->[root] var.kp_name + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_cos_bucket.flex-us-south + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_cos_bucket.flex-us-south + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] var.location + +var + + +location + + + +[root] var.cos_name->[root] var.location + + + + +[root] var.pln + +var + + +pln + + + +[root] var.location->[root] var.pln + + + + diff --git a/npm/example/demo-2/demo-2.json b/npm/example/demo-2/demo-2.json new file mode 100644 index 0000000..a0b2660 --- /dev/null +++ b/npm/example/demo-2/demo-2.json @@ -0,0 +1,2799 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "edge_0", + "target": "[root] provider.template" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip1", + "svg_id": "edge_1", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip2", + "svg_id": "edge_2", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_3", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_4", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_5", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_6", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_7", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_8", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_9", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_10", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_11", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_12", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_13", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_14", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_listener.lb1-listener", + "svg_id": "edge_15", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool.lb1-pool", + "svg_id": "edge_16", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_17", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_18", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_19", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_20", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_21", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_22", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_23", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_24", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_25", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_26", + "target": "[root] var.ssh_public_key" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet1", + "svg_id": "edge_27", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet2", + "svg_id": "edge_28", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_29", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_30", + "target": "[root] var.vpc_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_31", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_32", + "target": "[root] var.zone1" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_33", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_34", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_35", + "target": "[root] var.zone2" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_36", + "target": "[root] var.zone2_cidr" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_37", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_38", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_39", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_40", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_41", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_42", + "target": "[root] output.FloatingIP-1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_43", + "target": "[root] output.FloatingIP-2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_44", + "target": "[root] output.LB-Hostname" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-1", + "svg_id": "edge_45", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-2", + "svg_id": "edge_46", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] output.LB-Hostname", + "svg_id": "edge_47", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_48", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_49", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_50", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_51", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_52", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm", + "svg_id": "edge_53", + "target": "[root] var.ibmcloud_region" + }, + { + "edge_type": 1, + "source": "[root] provider.template (close)", + "svg_id": "edge_54", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_55", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_56", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_57", + "target": "[root] provider.template (close)" + }, + { + "edge_type": 3, + "source": "[root] var.zone1", + "svg_id": "edge_58", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 3, + "source": "[root] var.zone2", + "svg_id": "edge_59", + "target": "[root] var.zone2_cidr" + } + ], + "nodes": [ + { + "apply": { + "instances": [ + { + "attributes": { + "base64_encode": false, + "gzip": false, + "id": "708834281", + "part": [ + { + "content": "#cloud-config\npackages:\n - nginx\n\n", + "content_type": "", + "filename": "", + "merge_type": "" + } + ], + "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" + }, + "schema_version": 0 + } + ], + "mode": "data", + "name": "cloud-init-apptier", + "provider": "provider.template", + "type": "template_cloudinit_config" + }, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] data.template_cloudinit_config.cloud-init-apptier", + "module": "root", + "modules": [ + "root" + ], + "plan": "data-source", + "resource_name": "cloud-init-apptier", + "simple_name": "data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "node_0", + "type": "template_cloudinit_config" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address": "52.116.132.120", + "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "name": "fip6", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip6", + "resource_status": "available", + "status": "available", + "target": "0717-6ff05814-9f21-4795-959c-c1a5072cda06", + "timeouts": null, + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_instance.instance1", + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet1", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "floatingip1", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip6", + "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" + }, + "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip1", + "change": { + "actions": [ + "update" + ], + "after": { + "address": "52.116.132.120", + "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "name": "fip6", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip4", + "resource_status": "available", + "status": "available", + "timeouts": null, + "zone": "us-south-1" + }, + "after_unknown": { + "target": true + }, + "before": { + "address": "52.116.132.120", + "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "name": "fip4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip4", + "resource_status": "available", + "status": "available", + "target": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", + "timeouts": null, + "zone": "us-south-1" + } + }, + "mode": "managed", + "name": "floatingip1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "address": "52.116.132.120", + "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "name": "fip6", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip4", + "resource_status": "available", + "status": "available", + "timeouts": null, + "zone": "us-south-1" + } + }, + "resource_name": "floatingip1", + "simple_name": "ibm_is_floating_ip.floatingip1", + "svg_id": "node_1", + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address": "169.47.92.133", + "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "name": "fip7", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip7", + "resource_status": "available", + "status": "available", + "target": "0727-ce708efe-9d1f-4236-a6c4-e2f329485017", + "timeouts": null, + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_instance.instance2", + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "floatingip2", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip7", + "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" + }, + "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip2", + "change": { + "actions": [ + "update" + ], + "after": { + "address": "169.47.92.133", + "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "name": "fip7", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip5", + "resource_status": "available", + "status": "available", + "timeouts": null, + "zone": "us-south-2" + }, + "after_unknown": { + "target": true + }, + "before": { + "address": "169.47.92.133", + "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "name": "fip5", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip5", + "resource_status": "available", + "status": "available", + "target": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", + "timeouts": null, + "zone": "us-south-2" + } + }, + "mode": "managed", + "name": "floatingip2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "address": "169.47.92.133", + "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "name": "fip7", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "fip5", + "resource_status": "available", + "status": "available", + "timeouts": null, + "zone": "us-south-2" + } + }, + "resource_name": "floatingip2", + "simple_name": "ibm_is_floating_ip.floatingip2", + "svg_id": "node_2", + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "boot_volume": [ + { + "encryption": "", + "iops": 3000, + "name": "volume-attachment", + "profile": "general-purpose", + "size": 100 + } + ], + "generation": null, + "gpu": [], + "id": "0717_63ab863e-b75b-44b0-a50a-6996aab92c3c", + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "memory": 4, + "name": "instance6", + "network_interfaces": [], + "primary_network_interface": [ + { + "id": "0717-6ff05814-9f21-4795-959c-c1a5072cda06", + "name": "sandpaper-headcount-pucker-opossum-jump-easter", + "port_speed": 0, + "primary_ipv4_address": "172.16.1.4", + "security_groups": [ + "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" + ], + "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" + } + ], + "profile": "cx2-2x4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::instance:0717_63ab863e-b75b-44b0-a50a-6996aab92c3c", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "instance6", + "resource_status": "running", + "status": "running", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "vcpu": [ + { + "architecture": "amd64", + "count": 2 + } + ], + "volume_attachments": [ + { + "id": "0717-60f47bf7-7df2-44b1-89fb-eeb7e7bdfd18", + "name": "volume-attachment", + "volume_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-6f942a91-860d-11ea-8004-feff0b330b7b", + "volume_id": "r006-6f942a91-860d-11ea-8004-feff0b330b7b", + "volume_name": "sloppily-asleep-onto-deplete-botch-headroom" + } + ], + "volumes": null, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet1", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "instance1", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance6", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet1.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_instance.instance1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance1", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "name": "instance6", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null, + "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": [ + false + ], + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true + }, + "before": null + }, + "mode": "managed", + "name": "instance1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "name": "instance6", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null, + "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + } + }, + "resource_name": "instance1", + "simple_name": "ibm_is_instance.instance1", + "svg_id": "node_3", + "type": "ibm_is_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "boot_volume": [ + { + "encryption": "", + "iops": 3000, + "name": "volume-attachment", + "profile": "general-purpose", + "size": 100 + } + ], + "generation": null, + "gpu": [], + "id": "0727_32656bc2-ee7b-4481-8b59-6daf266e0017", + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "memory": 4, + "name": "instance7", + "network_interfaces": [], + "primary_network_interface": [ + { + "id": "0727-ce708efe-9d1f-4236-a6c4-e2f329485017", + "name": "boasting-wanted-premises-sixfold-suing-baboon", + "port_speed": 0, + "primary_ipv4_address": "172.16.2.4", + "security_groups": [ + "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" + ], + "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + } + ], + "profile": "cx2-2x4", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::instance:0727_32656bc2-ee7b-4481-8b59-6daf266e0017", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "instance7", + "resource_status": "running", + "status": "running", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "vcpu": [ + { + "architecture": "amd64", + "count": 2 + } + ], + "volume_attachments": [ + { + "id": "0727-49ad8bec-836d-4e62-b09e-d2116e8f0185", + "name": "volume-attachment", + "volume_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-6fafa66c-860d-11ea-927d-feff0b0a8b11", + "volume_id": "r006-6fafa66c-860d-11ea-927d-feff0b0a8b11", + "volume_name": "earplugs-evasive-concerned-violin-corner-clause" + } + ], + "volumes": null, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "instance2", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance7", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet2.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_instance.instance2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance2", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "name": "instance7", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null, + "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": [ + false + ], + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true + }, + "before": null + }, + "mode": "managed", + "name": "instance2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "keys": [ + "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" + ], + "name": "instance7", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null, + "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + } + ], + "profile": "cx2-2x4", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + } + }, + "resource_name": "instance2", + "simple_name": "ibm_is_instance.instance2", + "svg_id": "node_4", + "type": "ibm_is_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "hostname": "f8983743-us-south.lb.appdomain.cloud", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb", + "operating_status": "online", + "private_ips": [ + "172.16.1.6", + "172.16.2.6" + ], + "public_ips": [ + "52.116.136.11", + "52.116.196.12" + ], + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3-lb", + "status": "active", + "subnets": [ + "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + ], + "timeouts": null, + "type": "public" + }, + "dependencies": [ + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1", + "provider": "provider.ibm", + "type": "ibm_is_lb" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}-lb", + "subnets": [ + "${ibm_is_subnet.subnet1.id}", + "${ibm_is_subnet.subnet2.id}" + ] + }, + "group": 20000, + "label": "[root] ibm_is_lb.lb1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb.lb1", + "change": { + "actions": [ + "no-op" + ], + "after": { + "hostname": "f8983743-us-south.lb.appdomain.cloud", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb", + "operating_status": "online", + "private_ips": [ + "172.16.1.6", + "172.16.2.6" + ], + "public_ips": [ + "52.116.136.11", + "52.116.196.12" + ], + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3-lb", + "status": "active", + "subnets": [ + "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + ], + "timeouts": null, + "type": "public" + }, + "after_unknown": {}, + "before": { + "hostname": "f8983743-us-south.lb.appdomain.cloud", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb", + "operating_status": "online", + "private_ips": [ + "172.16.1.6", + "172.16.2.6" + ], + "public_ips": [ + "52.116.136.11", + "52.116.196.12" + ], + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3-lb", + "status": "active", + "subnets": [ + "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + ], + "timeouts": null, + "type": "public" + } + }, + "mode": "managed", + "name": "lb1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb", + "values": { + "hostname": "f8983743-us-south.lb.appdomain.cloud", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb", + "operating_status": "online", + "private_ips": [ + "172.16.1.6", + "172.16.2.6" + ], + "public_ips": [ + "52.116.136.11", + "52.116.196.12" + ], + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3-lb", + "status": "active", + "subnets": [ + "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" + ], + "timeouts": null, + "type": "public" + } + }, + "resource_name": "lb1", + "simple_name": "ibm_is_lb.lb1", + "svg_id": "node_5", + "type": "ibm_is_lb" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "certificate_instance": null, + "connection_limit": 0, + "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "port": 80, + "protocol": "http", + "status": "active", + "timeouts": null + }, + "dependencies": [ + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool", + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-listener", + "provider": "provider.ibm", + "type": "ibm_is_lb_listener" + }, + "cluster": "root", + "definition": { + "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", + "lb": "${ibm_is_lb.lb1.id}", + "port": "80", + "protocol": "http" + }, + "group": 20000, + "label": "[root] ibm_is_lb_listener.lb1-listener", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_listener.lb1-listener", + "change": { + "actions": [ + "no-op" + ], + "after": { + "certificate_instance": null, + "connection_limit": 0, + "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "port": 80, + "protocol": "http", + "status": "active", + "timeouts": null + }, + "after_unknown": {}, + "before": { + "certificate_instance": null, + "connection_limit": 0, + "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "port": 80, + "protocol": "http", + "status": "active", + "timeouts": null + } + }, + "mode": "managed", + "name": "lb1-listener", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_listener", + "values": { + "certificate_instance": null, + "connection_limit": 0, + "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "port": 80, + "protocol": "http", + "status": "active", + "timeouts": null + } + }, + "resource_name": "lb1-listener", + "simple_name": "ibm_is_lb_listener.lb1-listener", + "svg_id": "node_6", + "type": "ibm_is_lb_listener" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_port": 0, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "provisioning_status": "active", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "dependencies": [ + "ibm_is_lb.lb1", + "ibm_is_subnet.subnet1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool" + }, + "cluster": "root", + "definition": { + "algorithm": "round_robin", + "health_delay": "5", + "health_monitor_url": "/", + "health_retries": "2", + "health_timeout": "2", + "health_type": "http", + "lb": "${ibm_is_lb.lb1.id}", + "name": "${var.vpc_name}-lb1-pool", + "protocol": "http" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool.lb1-pool", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool.lb1-pool", + "change": { + "actions": [ + "no-op" + ], + "after": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_port": 0, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "provisioning_status": "active", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "after_unknown": {}, + "before": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_port": 0, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "provisioning_status": "active", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + } + }, + "mode": "managed", + "name": "lb1-pool", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool", + "values": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_port": 0, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "provisioning_status": "active", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + } + }, + "resource_name": "lb1-pool", + "simple_name": "ibm_is_lb_pool.lb1-pool", + "svg_id": "node_7", + "type": "ibm_is_lb_pool" + }, + { + "apply": { + "each": "list", + "instances": [ + { + "attributes": { + "health": "ok", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-62b278cc-2051-4955-881b-3f160f14a9a6", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-62b278cc-2051-4955-881b-3f160f14a9a6", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.1.4", + "timeouts": null, + "weight": 50 + }, + "dependencies": [ + "ibm_is_instance.instance1", + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool", + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet1", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1" + ], + "index_key": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool-member1", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", + "change": { + "actions": [ + "delete", + "create" + ], + "after": { + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": { + "health": "faulted", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.1.5", + "timeouts": null, + "weight": 50 + } + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member1", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "node_8", + "type": "ibm_is_lb_pool_member" + }, + { + "apply": { + "each": "list", + "instances": [ + { + "attributes": { + "health": "ok", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-6f9678f5-c71c-48f0-b646-4ccbe9fe8c73", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-6f9678f5-c71c-48f0-b646-4ccbe9fe8c73", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.2.4", + "timeouts": null, + "weight": 50 + }, + "dependencies": [ + "ibm_is_instance.instance2", + "ibm_is_lb.lb1", + "ibm_is_lb_pool.lb1-pool", + "ibm_is_ssh_key.ssh1", + "ibm_is_subnet.subnet2", + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "index_key": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "lb1-pool-member2", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", + "change": { + "actions": [ + "delete", + "create" + ], + "after": { + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": { + "health": "faulted", + "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-81ceccac-212d-491e-b386-d0ad57f53be7", + "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-81ceccac-212d-491e-b386-d0ad57f53be7", + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "provisioning_status": "active", + "target_address": "172.16.2.5", + "timeouts": null, + "weight": 50 + } + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", + "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member2", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "node_9", + "type": "ibm_is_lb_pool_member" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "dependencies": [ + "ibm_is_floating_ip.floatingip1", + "ibm_is_floating_ip.floatingip2", + "ibm_is_instance.instance1", + "ibm_is_instance.instance2", + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "22", + "port_min": "22" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "change": { + "actions": [ + "no-op" + ], + "after": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "after_unknown": {}, + "before": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + } + }, + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_22", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "node_10", + "type": "ibm_is_security_group_rule" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "dependencies": [ + "ibm_is_floating_ip.floatingip1", + "ibm_is_floating_ip.floatingip2", + "ibm_is_instance.instance1", + "ibm_is_instance.instance2", + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "80", + "port_min": "80" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "change": { + "actions": [ + "no-op" + ], + "after": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "after_unknown": {}, + "before": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + } + }, + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "icmp": [], + "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_80", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "node_11", + "type": "ibm_is_security_group_rule" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", + "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "length": 4096, + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "ssh10", + "type": "rsa" + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "ssh1", + "provider": "provider.ibm", + "type": "ibm_is_ssh_key" + }, + "cluster": "root", + "definition": { + "name": "ssh10", + "public_key": "${var.ssh_public_key}" + }, + "group": 20000, + "label": "[root] ibm_is_ssh_key.ssh1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_ssh_key.ssh1", + "change": { + "actions": [ + "no-op" + ], + "after": { + "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", + "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "length": 4096, + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "ssh10", + "type": "rsa" + }, + "after_unknown": {}, + "before": { + "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", + "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "length": 4096, + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "ssh10", + "type": "rsa" + } + }, + "mode": "managed", + "name": "ssh1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_ssh_key", + "values": { + "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", + "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "length": 4096, + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "ssh10", + "type": "rsa" + } + }, + "resource_name": "ssh1", + "simple_name": "ibm_is_ssh_key.ssh1", + "svg_id": "node_12", + "type": "ibm_is_ssh_key" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "ipv6_cidr_block": "", + "name": "subnet3", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet3", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "subnet1", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap1}" + ], + "ipv4_cidr_block": "${var.zone1_cidr}", + "name": "subnet3", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet1", + "change": { + "actions": [ + "update" + ], + "after": { + "available_ipv4_address_count": null, + "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "ipv6_cidr_block": "", + "name": "subnet3", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet1", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "after_unknown": {}, + "before": { + "available_ipv4_address_count": null, + "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "ipv6_cidr_block": "", + "name": "subnet1", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet1", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + } + }, + "mode": "managed", + "name": "subnet1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "available_ipv4_address_count": null, + "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "ipv6_cidr_block": "", + "name": "subnet3", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet1", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + } + }, + "resource_name": "subnet1", + "simple_name": "ibm_is_subnet.subnet1", + "svg_id": "node_13", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "ipv6_cidr_block": "", + "name": "subnet4", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet4", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_vpc.vpc1", + "ibm_is_vpc_address_prefix.vpc-ap2" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "subnet2", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap2}" + ], + "ipv4_cidr_block": "${var.zone2_cidr}", + "name": "subnet4", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet2", + "change": { + "actions": [ + "update" + ], + "after": { + "available_ipv4_address_count": null, + "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "ipv6_cidr_block": "", + "name": "subnet4", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet2", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "after_unknown": {}, + "before": { + "available_ipv4_address_count": null, + "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "ipv6_cidr_block": "", + "name": "subnet2", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet2", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + } + }, + "mode": "managed", + "name": "subnet2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "available_ipv4_address_count": null, + "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "ipv6_cidr_block": "", + "name": "subnet4", + "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "subnet2", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + } + }, + "resource_name": "subnet2", + "simple_name": "ibm_is_subnet.subnet2", + "svg_id": "node_14", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address_prefix_management": "auto", + "classic_access": false, + "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "is_default": null, + "name": "vpc-fs2020-lab3", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc1", + "provider": "provider.ibm", + "type": "ibm_is_vpc" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc.vpc1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.vpc1", + "change": { + "actions": [ + "no-op" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "is_default": null, + "name": "vpc-fs2020-lab3", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null + }, + "after_unknown": {}, + "before": { + "address_prefix_management": "auto", + "classic_access": false, + "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "is_default": null, + "name": "vpc-fs2020-lab3", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null + } + }, + "mode": "managed", + "name": "vpc1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", + "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "is_default": null, + "name": "vpc-fs2020-lab3", + "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", + "resource_group_name": "Default", + "resource_name": "vpc-fs2020-lab3", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null + } + }, + "resource_name": "vpc1", + "simple_name": "ibm_is_vpc.vpc1", + "svg_id": "node_15", + "type": "ibm_is_vpc" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "cidr": "172.16.1.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", + "name": "vpc-ap3", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "dependencies": [ + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc-ap1", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone1_cidr}", + "name": "vpc-ap3", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap1", + "change": { + "actions": [ + "update" + ], + "after": { + "cidr": "172.16.1.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", + "name": "vpc-ap3", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + }, + "after_unknown": {}, + "before": { + "cidr": "172.16.1.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", + "name": "vpc-ap1", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + } + }, + "mode": "managed", + "name": "vpc-ap1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.1.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", + "name": "vpc-ap3", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-1" + } + }, + "resource_name": "vpc-ap1", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "node_16", + "type": "ibm_is_vpc_address_prefix" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "cidr": "172.16.2.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", + "name": "vpc-ap4", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "dependencies": [ + "ibm_is_vpc.vpc1" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "vpc-ap2", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone2_cidr}", + "name": "vpc-ap4", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap2", + "change": { + "actions": [ + "update" + ], + "after": { + "cidr": "172.16.2.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", + "name": "vpc-ap4", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + }, + "after_unknown": {}, + "before": { + "cidr": "172.16.2.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", + "name": "vpc-ap2", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + } + }, + "mode": "managed", + "name": "vpc-ap2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.2.0/24", + "has_subnets": true, + "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", + "name": "vpc-ap4", + "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", + "zone": "us-south-2" + } + }, + "resource_name": "vpc-ap2", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "node_17", + "type": "ibm_is_vpc_address_prefix" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", + "definition": { + "value": "${ibm_is_floating_ip.floatingip1.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-1", + "simple_name": "output.FloatingIP-1", + "svg_id": "node_18", + "type": "output" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", + "definition": { + "value": "${ibm_is_floating_ip.floatingip2.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-2", + "simple_name": "output.FloatingIP-2", + "svg_id": "node_19", + "type": "output" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", + "definition": { + "value": "http://${ibm_is_lb.lb1.hostname}" + }, + "group": 20000, + "label": "[root] output.LB-Hostname", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "LB-Hostname", + "simple_name": "output.LB-Hostname", + "svg_id": "node_20", + "type": "output" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_21", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template", + "svg_id": "node_22", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] provider.ibm_var_", + "definition": { + "default": "us-south", + "description": "Preferred IBM Cloud region to use for your infrastructure" + }, + "group": 20000, + "label": "[root] var.ibmcloud_region", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ibmcloud_region", + "simple_name": "var.ibmcloud_region", + "svg_id": "node_23", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "r006-14140f94-fcc4-11e9-96e7-a72723715315", + "description": "OS Image ID to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.image", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "image", + "simple_name": "var.image", + "svg_id": "node_24", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "cx2-2x4", + "description": "Instance profile to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.profile", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "profile", + "simple_name": "var.profile", + "svg_id": "node_25", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", + "definition": { + "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "description": "SSH Public Key contents to be used" + }, + "group": 20000, + "label": "[root] var.ssh_public_key", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ssh_public_key", + "simple_name": "var.ssh_public_key", + "svg_id": "node_26", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", + "definition": { + "default": "vpc-fs2020-lab3", + "description": "Name of your VPC" + }, + "group": 20000, + "label": "[root] var.vpc_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "vpc_name", + "simple_name": "var.vpc_name", + "svg_id": "node_27", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "us-south-1", + "description": "Define the 1st zone of the region" + }, + "group": 20000, + "label": "[root] var.zone1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1", + "simple_name": "var.zone1", + "svg_id": "node_28", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "172.16.1.0/24", + "description": "CIDR block to be used for zone 1" + }, + "group": 20000, + "label": "[root] var.zone1_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1_cidr", + "simple_name": "var.zone1_cidr", + "svg_id": "node_29", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "us-south-2", + "description": "Define the 2nd zone of the region" + }, + "group": 20000, + "label": "[root] var.zone2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2", + "simple_name": "var.zone2", + "svg_id": "node_30", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "172.16.2.0/24", + "description": "CIDR block to be used for zone 2" + }, + "group": 20000, + "label": "[root] var.zone2_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2_cidr", + "simple_name": "var.zone2_cidr", + "svg_id": "node_31", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_32", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_33", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template (close)", + "svg_id": "node_34", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_35", + "type": "" + } + ] +} diff --git a/npm/example/demo-2/demo-2.svg b/npm/example/demo-2/demo-2.svg new file mode 100644 index 0000000..c0b9421 --- /dev/null +++ b/npm/example/demo-2/demo-2.svg @@ -0,0 +1,669 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + +cloud-init-apptier + + + +[root] provider.template + +provider + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + \ No newline at end of file diff --git a/npm/example/demo-2/demonew-2.svg b/npm/example/demo-2/demonew-2.svg new file mode 100644 index 0000000..51abb94 --- /dev/null +++ b/npm/example/demo-2/demonew-2.svg @@ -0,0 +1,750 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + + + + +cloud-init-apptier + + + +[root] provider.template + +provider + + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + + +# + + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + + ++ + + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + + +# + + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + + ++ + + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + + + + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + + +# + + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + + +# + + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + + + + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + + + + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + + + + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + + +-/+ + + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + + +-/+ + + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + + + + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + + + + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + + +# + + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + + +# + + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + + + + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/npm/example/demo-2/simple-demo-2.json b/npm/example/demo-2/simple-demo-2.json new file mode 100644 index 0000000..e634320 --- /dev/null +++ b/npm/example/demo-2/simple-demo-2.json @@ -0,0 +1,536 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_0", + "target": "[root] ibm_iam_authorization_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_1", + "target": "[root] ibm_kp_key.test" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_2", + "target": "[root] ibm_resource_instance.cos_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_iam_authorization_policy.policy", + "svg_id": "edge_3", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_4", + "target": "[root] ibm_resource_instance.kp_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_5", + "target": "[root] var.key_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_6", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_7", + "target": "[root] var.cos_name" + }, + { + "edge_type": 2, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_8", + "target": "[root] var.location" + }, + { + "edge_type": 2, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_9", + "target": "[root] var.pln" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_10", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_11", + "target": "[root] var.kp_name" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_12", + "target": "[root] ibm_cos_bucket.flex-us-south" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_13", + "target": "[root] ibm_cos_bucket.flex-us-south" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_14", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_15", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 3, + "source": "[root] var.cos_name", + "svg_id": "edge_16", + "target": "[root] var.location" + }, + { + "edge_type": 3, + "source": "[root] var.location", + "svg_id": "edge_17", + "target": "[root] var.pln" + } + ], + "nodes": [ + { + "apply": "not yet applied", + "cluster": "root", + "definition": { + "bucket_name": "abuck3", + "key_protect": "${ibm_kp_key.test.id}", + "region_location": "us-south", + "resource_instance_id": "${ibm_resource_instance.cos_instance.id}", + "storage_class": "flex" + }, + "group": 20000, + "label": "[root] ibm_cos_bucket.flex-us-south", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cos_bucket.flex-us-south", + "change": { + "actions": [ + "create" + ], + "after": { + "bucket_name": "abuck3", + "cross_region_location": null, + "region_location": "us-south", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_protect": true, + "resource_instance_id": true, + "s3_endpoint_private": true, + "s3_endpoint_public": true + }, + "before": null + }, + "mode": "managed", + "name": "flex-us-south", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cos_bucket", + "values": { + "bucket_name": "abuck3", + "cross_region_location": null, + "region_location": "us-south", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + } + }, + "resource_name": "flex-us-south", + "simple_name": "ibm_cos_bucket.flex-us-south", + "svg_id": "node_0", + "type": "ibm_cos_bucket" + }, + { + "apply": "not yet applied", + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] ibm_iam_authorization_policy.policy", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "policy", + "simple_name": "ibm_iam_authorization_policy.policy", + "svg_id": "node_1", + "type": "ibm_iam_authorization_policy" + }, + { + "apply": "not yet applied", + "cluster": "root", + "definition": { + "key_name": "${var.key_name}", + "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", + "standard_key": false + }, + "group": 20000, + "label": "[root] ibm_kp_key.test", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_kp_key.test", + "change": { + "actions": [ + "create" + ], + "after": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "test_key2", + "standard_key": false, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_id": true, + "key_protect_id": true, + "payload": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true + }, + "before": null + }, + "mode": "managed", + "name": "test", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_kp_key", + "values": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "test_key2", + "standard_key": false, + "timeouts": null + } + }, + "resource_name": "test", + "simple_name": "ibm_kp_key.test", + "svg_id": "node_2", + "type": "ibm_kp_key" + }, + { + "apply": "not yet applied", + "cluster": "root", + "definition": { + "location": "${var.location}", + "name": "${var.cos_name}", + "plan": "${var.pln}", + "service": "cloud-object-storage" + }, + "group": 20000, + "label": "[root] ibm_resource_instance.cos_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.cos_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "globals", + "name": "test_cos2", + "parameters": null, + "plan": "standards", + "resource_group_id": null, + "service": "cloud-object-storage", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "globals", + "name": "test_cos2", + "parameters": null, + "plan": "standards", + "resource_group_id": null, + "service": "cloud-object-storage", + "service_endpoints": null, + "tags": null, + "timeouts": null + } + }, + "resource_name": "cos_instance", + "simple_name": "ibm_resource_instance.cos_instance", + "svg_id": "node_3", + "type": "ibm_resource_instance" + }, + { + "apply": "not yet applied", + "cluster": "root", + "definition": { + "location": "us-south", + "name": "${var.kp_name}", + "plan": "tiered-pricing", + "service": "mks" + }, + "group": 20000, + "label": "[root] ibm_resource_instance.kp_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.kp_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "mks", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "kp_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "mks", + "service_endpoints": null, + "tags": null, + "timeouts": null + } + }, + "resource_name": "kp_instance", + "simple_name": "ibm_resource_instance.kp_instance", + "svg_id": "node_4", + "type": "ibm_resource_instance" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_5", + "type": "provider" + }, + { + "apply": "not yet applied", + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "test_cos2" + }, + "group": 20000, + "label": "[root] var.cos_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "cos_name", + "simple_name": "var.cos_name", + "svg_id": "node_6", + "type": "var" + }, + { + "apply": "not yet applied", + "cluster": "cluster[root] ibm_kp_key.test_var_", + "definition": { + "default": "test_key2" + }, + "group": 20000, + "label": "[root] var.key_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "key_name", + "simple_name": "var.key_name", + "svg_id": "node_7", + "type": "var" + }, + { + "apply": "not yet applied", + "cluster": "cluster[root] ibm_resource_instance.kp_instance_var_", + "definition": { + "default": "test_kp2" + }, + "group": 20000, + "label": "[root] var.kp_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "kp_name", + "simple_name": "var.kp_name", + "svg_id": "node_8", + "type": "var" + }, + { + "apply": "not yet applied", + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "globals" + }, + "group": 20000, + "label": "[root] var.location", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "location", + "simple_name": "var.location", + "svg_id": "node_9", + "type": "var" + }, + { + "apply": "not yet applied", + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "standards" + }, + "group": 20000, + "label": "[root] var.pln", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "pln", + "simple_name": "var.pln", + "svg_id": "node_10", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_11", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_12", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_13", + "type": "" + } + ] +} diff --git a/npm/example/demo-2/simple-demo-2.svg b/npm/example/demo-2/simple-demo-2.svg new file mode 100644 index 0000000..5521d4d --- /dev/null +++ b/npm/example/demo-2/simple-demo-2.svg @@ -0,0 +1,231 @@ + + + + + + +%3 + + +cluster[root] ibm_resource_instance.cos_instance_var_ + + +cluster[root] ibm_kp_key.test_var_ + + +cluster[root] ibm_resource_instance.kp_instance_var_ + + + +[root] ibm_cos_bucket.flex-us-south + +ibm_cos_bucket + + ++ + + +flex-us-south + + + +[root] ibm_kp_key.test + +ibm_kp_key + + ++ + + +test + + + +[root] ibm_cos_bucket.flex-us-south->[root] ibm_kp_key.test + + + + + +[root] ibm_resource_instance.cos_instance + +ibm_resource_instance + + ++ + + +cos_instance + + + +[root] ibm_cos_bucket.flex-us-south->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_resource_instance.kp_instance + +ibm_resource_instance + + ++ + + +kp_instance + + + +[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance + + + + + +[root] var.key_name + +var + + +key_name + + + +[root] ibm_kp_key.test->[root] var.key_name + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_resource_instance.cos_instance->[root] provider.ibm + + + + + +[root] var.cos_name + +var + + +cos_name + + + +[root] ibm_resource_instance.cos_instance->[root] var.cos_name + + + + + +[root] ibm_resource_instance.kp_instance->[root] provider.ibm + + + + + +[root] var.kp_name + +var + + +kp_name + + + +[root] ibm_resource_instance.kp_instance->[root] var.kp_name + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_cos_bucket.flex-us-south + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_cos_bucket.flex-us-south + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] var.location + +var + + +location + + + +[root] var.cos_name->[root] var.location + + + + +[root] var.pln + +var + + +pln + + + +[root] var.location->[root] var.pln + + + + + diff --git a/npm/example/demo-3/demo-3.json b/npm/example/demo-3/demo-3.json new file mode 100644 index 0000000..6d1e8c1 --- /dev/null +++ b/npm/example/demo-3/demo-3.json @@ -0,0 +1,1922 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "edge_0", + "target": "[root] provider.template" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip1", + "svg_id": "edge_1", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_floating_ip.floatingip2", + "svg_id": "edge_2", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_3", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_4", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_5", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_6", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance1", + "svg_id": "edge_7", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_8", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_9", + "target": "[root] ibm_is_ssh_key.ssh1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_10", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_11", + "target": "[root] var.image" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_instance.instance2", + "svg_id": "edge_12", + "target": "[root] var.profile" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_13", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb.lb1", + "svg_id": "edge_14", + "target": "[root] ibm_is_subnet.subnet2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_listener.lb1-listener", + "svg_id": "edge_15", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool.lb1-pool", + "svg_id": "edge_16", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_17", + "target": "[root] ibm_is_instance.instance1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "edge_18", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_19", + "target": "[root] ibm_is_instance.instance2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "edge_20", + "target": "[root] ibm_is_lb_pool.lb1-pool" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_21", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "edge_22", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_23", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "edge_24", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_25", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_ssh_key.ssh1", + "svg_id": "edge_26", + "target": "[root] var.ssh_public_key" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet1", + "svg_id": "edge_27", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet2", + "svg_id": "edge_28", + "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_29", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc.vpc1", + "svg_id": "edge_30", + "target": "[root] var.vpc_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_31", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_32", + "target": "[root] var.zone1" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "edge_33", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_34", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_35", + "target": "[root] var.zone2" + }, + { + "edge_type": 2, + "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "edge_36", + "target": "[root] var.zone2_cidr" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_37", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_38", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_39", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_40", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_41", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_42", + "target": "[root] output.FloatingIP-1" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_43", + "target": "[root] output.FloatingIP-2" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_44", + "target": "[root] output.LB-Hostname" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-1", + "svg_id": "edge_45", + "target": "[root] ibm_is_floating_ip.floatingip1" + }, + { + "edge_type": 1, + "source": "[root] output.FloatingIP-2", + "svg_id": "edge_46", + "target": "[root] ibm_is_floating_ip.floatingip2" + }, + { + "edge_type": 1, + "source": "[root] output.LB-Hostname", + "svg_id": "edge_47", + "target": "[root] ibm_is_lb.lb1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_48", + "target": "[root] ibm_is_lb_listener.lb1-listener" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_49", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_50", + "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_51", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_52", + "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm", + "svg_id": "edge_53", + "target": "[root] var.ibmcloud_region" + }, + { + "edge_type": 1, + "source": "[root] provider.template (close)", + "svg_id": "edge_54", + "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_55", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_56", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_57", + "target": "[root] provider.template (close)" + }, + { + "edge_type": 3, + "source": "[root] var.zone1", + "svg_id": "edge_58", + "target": "[root] var.zone1_cidr" + }, + { + "edge_type": 3, + "source": "[root] var.zone2", + "svg_id": "edge_59", + "target": "[root] var.zone2_cidr" + } + ], + "nodes": [ + { + "apply": { + "instances": [ + { + "attributes": { + "base64_encode": false, + "gzip": false, + "id": "708834281", + "part": [ + { + "content": "#cloud-config\npackages:\n - nginx\n\n", + "content_type": "", + "filename": "", + "merge_type": "" + } + ], + "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" + }, + "schema_version": 0 + } + ], + "mode": "data", + "name": "cloud-init-apptier", + "provider": "provider.template", + "type": "template_cloudinit_config" + }, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] data.template_cloudinit_config.cloud-init-apptier", + "module": "root", + "modules": [ + "root" + ], + "plan": "data-source", + "resource_name": "cloud-init-apptier", + "simple_name": "data.template_cloudinit_config.cloud-init-apptier", + "svg_id": "node_0", + "type": "template_cloudinit_config" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "floatingip1", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip6", + "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" + }, + "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "fip6", + "timeouts": null + }, + "after_unknown": { + "address": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "target": true, + "zone": true + }, + "before": null + }, + "mode": "managed", + "name": "floatingip1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "name": "fip6", + "timeouts": null + } + }, + "resource_name": "floatingip1", + "simple_name": "ibm_is_floating_ip.floatingip1", + "svg_id": "node_1", + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "floatingip2", + "provider": "provider.ibm", + "type": "ibm_is_floating_ip" + }, + "cluster": "root", + "definition": { + "name": "fip7", + "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" + }, + "group": 20000, + "label": "[root] ibm_is_floating_ip.floatingip2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_floating_ip.floatingip2", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "fip7", + "timeouts": null + }, + "after_unknown": { + "address": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "target": true, + "zone": true + }, + "before": null + }, + "mode": "managed", + "name": "floatingip2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_floating_ip", + "values": { + "name": "fip7", + "timeouts": null + } + }, + "resource_name": "floatingip2", + "simple_name": "ibm_is_floating_ip.floatingip2", + "svg_id": "node_2", + "type": "ibm_is_floating_ip" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "instance1", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance6", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet1.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_instance.instance1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance1", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance6", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "54376-g", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-1" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": true, + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true, + "subnet": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "instance1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance6", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "54376-g", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-1" + } + }, + "resource_name": "instance1", + "simple_name": "ibm_is_instance.instance1", + "svg_id": "node_3", + "type": "ibm_is_instance" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "instance2", + "provider": "provider.ibm", + "type": "ibm_is_instance" + }, + "cluster": "root", + "definition": { + "image": "${var.image}", + "keys": [ + "${ibm_is_ssh_key.ssh1.id}" + ], + "name": "instance7", + "primary_network_interface": { + "subnet": "${ibm_is_subnet.subnet2.id}" + }, + "profile": "${var.profile}", + "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_instance.instance2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.instance2", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance7", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "54376-g", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-2" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": true, + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true, + "subnet": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vcpu": true, + "volume_attachments": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "instance2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", + "name": "instance7", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": null + } + ], + "profile": "54376-g", + "timeouts": null, + "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", + "volumes": null, + "zone": "us-south-2" + } + }, + "resource_name": "instance2", + "simple_name": "ibm_is_instance.instance2", + "svg_id": "node_4", + "type": "ibm_is_instance" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "lb1", + "provider": "provider.ibm", + "type": "ibm_is_lb" + }, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}-lb", + "subnets": [ + "${ibm_is_subnet.subnet1.id}", + "${ibm_is_subnet.subnet2.id}" + ] + }, + "group": 20000, + "label": "[root] ibm_is_lb.lb1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb.lb1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "vpc-fs2020-lab3-lb", + "timeouts": null, + "type": "public" + }, + "after_unknown": { + "hostname": true, + "id": true, + "operating_status": true, + "private_ips": true, + "public_ips": true, + "resource_controller_url": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "status": true, + "subnets": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb", + "values": { + "name": "vpc-fs2020-lab3-lb", + "timeouts": null, + "type": "public" + } + }, + "resource_name": "lb1", + "simple_name": "ibm_is_lb.lb1", + "svg_id": "node_5", + "type": "ibm_is_lb" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "lb1-listener", + "provider": "provider.ibm", + "type": "ibm_is_lb_listener" + }, + "cluster": "root", + "definition": { + "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", + "lb": "${ibm_is_lb.lb1.id}", + "port": "80", + "protocol": "http" + }, + "group": 20000, + "label": "[root] ibm_is_lb_listener.lb1-listener", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_listener.lb1-listener", + "change": { + "actions": [ + "create" + ], + "after": { + "certificate_instance": null, + "connection_limit": null, + "port": 80, + "protocol": "http", + "timeouts": null + }, + "after_unknown": { + "default_pool": true, + "id": true, + "lb": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1-listener", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_listener", + "values": { + "certificate_instance": null, + "connection_limit": null, + "port": 80, + "protocol": "http", + "timeouts": null + } + }, + "resource_name": "lb1-listener", + "simple_name": "ibm_is_lb_listener.lb1-listener", + "svg_id": "node_6", + "type": "ibm_is_lb_listener" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "lb1-pool", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool" + }, + "cluster": "root", + "definition": { + "algorithm": "round_robin", + "health_delay": "5", + "health_monitor_url": "/", + "health_retries": "2", + "health_timeout": "2", + "health_type": "http", + "lb": "${ibm_is_lb.lb1.id}", + "name": "${var.vpc_name}-lb1-pool", + "protocol": "http" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool.lb1-pool", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool.lb1-pool", + "change": { + "actions": [ + "create" + ], + "after": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + }, + "after_unknown": { + "health_monitor_port": true, + "id": true, + "lb": true, + "provisioning_status": true + }, + "before": null + }, + "mode": "managed", + "name": "lb1-pool", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool", + "values": { + "algorithm": "round_robin", + "health_delay": 5, + "health_monitor_url": "/", + "health_retries": 2, + "health_timeout": 2, + "health_type": "http", + "name": "vpc-fs2020-lab3-lb1-pool", + "protocol": "http", + "session_persistence_cookie_name": null, + "session_persistence_type": null, + "timeouts": null + } + }, + "resource_name": "lb1-pool", + "simple_name": "ibm_is_lb_pool.lb1-pool", + "svg_id": "node_7", + "type": "ibm_is_lb_pool" + }, + { + "apply": { + "each": "list", + "instances": [], + "mode": "managed", + "name": "lb1-pool-member1", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", + "change": { + "actions": [ + "create" + ], + "after": { + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "lb": true, + "pool": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": null + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member1", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", + "svg_id": "node_8", + "type": "ibm_is_lb_pool_member" + }, + { + "apply": { + "each": "list", + "instances": [], + "mode": "managed", + "name": "lb1-pool-member2", + "provider": "provider.ibm", + "type": "ibm_is_lb_pool_member" + }, + "cluster": "root", + "definition": { + "count": 1, + "lb": "${ibm_is_lb.lb1.id}", + "pool": "${ibm_is_lb_pool.lb1-pool.id}", + "port": "80", + "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" + }, + "group": 20000, + "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", + "change": { + "actions": [ + "create" + ], + "after": { + "port": 80, + "timeouts": null + }, + "after_unknown": { + "health": true, + "href": true, + "id": true, + "lb": true, + "pool": true, + "provisioning_status": true, + "target_address": true, + "weight": true + }, + "before": null + }, + "index": 0, + "mode": "managed", + "name": "lb1-pool-member2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb_pool_member", + "values": { + "port": 80, + "timeouts": null + } + }, + "resource_name": "lb1-pool-member2", + "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", + "svg_id": "node_9", + "type": "ibm_is_lb_pool_member" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "22", + "port_min": "22" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "change": { + "actions": [ + "create" + ], + "after": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + }, + "after_unknown": { + "group": true, + "icmp": [], + "id": true, + "rule_id": true, + "tcp": [ + {} + ], + "udp": [] + }, + "before": null + }, + "mode": "managed", + "name": "sg1_tcp_rule_22", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 22, + "port_min": 22 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_22", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", + "svg_id": "node_10", + "type": "ibm_is_security_group_rule" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider": "provider.ibm", + "type": "ibm_is_security_group_rule" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_floating_ip.floatingip1}", + "${ibm_is_floating_ip.floatingip2}" + ], + "direction": "inbound", + "group": "${ibm_is_vpc.vpc1.default_security_group}", + "remote": "0.0.0.0/0", + "tcp": { + "port_max": "80", + "port_min": "80" + } + }, + "group": 20000, + "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "change": { + "actions": [ + "create" + ], + "after": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + }, + "after_unknown": { + "group": true, + "icmp": [], + "id": true, + "rule_id": true, + "tcp": [ + {} + ], + "udp": [] + }, + "before": null + }, + "mode": "managed", + "name": "sg1_tcp_rule_80", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_security_group_rule", + "values": { + "direction": "inbound", + "icmp": [], + "ip_version": "ipv4", + "remote": "0.0.0.0/0", + "tcp": [ + { + "port_max": 80, + "port_min": 80 + } + ], + "udp": [] + } + }, + "resource_name": "sg1_tcp_rule_80", + "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", + "svg_id": "node_11", + "type": "ibm_is_security_group_rule" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "name": "ssh10", + "public_key": "${var.ssh_public_key}" + }, + "group": 20000, + "label": "[root] ibm_is_ssh_key.ssh1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_ssh_key.ssh1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local" + }, + "after_unknown": { + "fingerprint": true, + "id": true, + "length": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "type": true + }, + "before": null + }, + "mode": "managed", + "name": "ssh1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_ssh_key", + "values": { + "name": "ssh10", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local" + } + }, + "resource_name": "ssh1", + "simple_name": "ibm_is_ssh_key.ssh1", + "svg_id": "node_12", + "type": "ibm_is_ssh_key" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "subnet1", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap1}" + ], + "ipv4_cidr_block": "${var.zone1_cidr}", + "name": "subnet3", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet1", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "name": "subnet3", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.1.0/24", + "name": "subnet3", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + } + }, + "resource_name": "subnet1", + "simple_name": "ibm_is_subnet.subnet1", + "svg_id": "node_13", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "subnet2", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "definition": { + "depends_on": [ + "${ibm_is_vpc_address_prefix.vpc-ap2}" + ], + "ipv4_cidr_block": "${var.zone2_cidr}", + "name": "subnet4", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet2", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "name": "subnet4", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-2" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "172.16.2.0/24", + "name": "subnet4", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-2" + } + }, + "resource_name": "subnet2", + "simple_name": "ibm_is_subnet.subnet2", + "svg_id": "node_14", + "type": "ibm_is_subnet" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "name": "${var.vpc_name}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc.vpc1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.vpc1", + "change": { + "actions": [ + "create" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "vpc-fs2020-lab3", + "tags": null, + "timeouts": null + }, + "after_unknown": { + "default_network_acl": true, + "default_security_group": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "vpc-fs2020-lab3", + "tags": null, + "timeouts": null + } + }, + "resource_name": "vpc1", + "simple_name": "ibm_is_vpc.vpc1", + "svg_id": "node_15", + "type": "ibm_is_vpc" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "vpc-ap1", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone1_cidr}", + "name": "vpc-ap3", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone1}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap1", + "change": { + "actions": [ + "create" + ], + "after": { + "cidr": "172.16.1.0/24", + "name": "vpc-ap3", + "zone": "us-south-1" + }, + "after_unknown": { + "has_subnets": true, + "id": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc-ap1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.1.0/24", + "name": "vpc-ap3", + "zone": "us-south-1" + } + }, + "resource_name": "vpc-ap1", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", + "svg_id": "node_16", + "type": "ibm_is_vpc_address_prefix" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "vpc-ap2", + "provider": "provider.ibm", + "type": "ibm_is_vpc_address_prefix" + }, + "cluster": "root", + "definition": { + "cidr": "${var.zone2_cidr}", + "name": "vpc-ap4", + "vpc": "${ibm_is_vpc.vpc1.id}", + "zone": "${var.zone2}" + }, + "group": 20000, + "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc_address_prefix.vpc-ap2", + "change": { + "actions": [ + "create" + ], + "after": { + "cidr": "172.16.2.0/24", + "name": "vpc-ap4", + "zone": "us-south-2" + }, + "after_unknown": { + "has_subnets": true, + "id": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc-ap2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc_address_prefix", + "values": { + "cidr": "172.16.2.0/24", + "name": "vpc-ap4", + "zone": "us-south-2" + } + }, + "resource_name": "vpc-ap2", + "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", + "svg_id": "node_17", + "type": "ibm_is_vpc_address_prefix" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", + "definition": { + "value": "${ibm_is_floating_ip.floatingip1.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-1", + "simple_name": "output.FloatingIP-1", + "svg_id": "node_18", + "type": "output" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", + "definition": { + "value": "${ibm_is_floating_ip.floatingip2.address}" + }, + "group": 20000, + "label": "[root] output.FloatingIP-2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "FloatingIP-2", + "simple_name": "output.FloatingIP-2", + "svg_id": "node_19", + "type": "output" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", + "definition": { + "value": "http://${ibm_is_lb.lb1.hostname}" + }, + "group": 20000, + "label": "[root] output.LB-Hostname", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "LB-Hostname", + "simple_name": "output.LB-Hostname", + "svg_id": "node_20", + "type": "output" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_21", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template", + "svg_id": "node_22", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] provider.ibm_var_", + "definition": { + "default": "us", + "description": "Preferred IBM Cloud region to use for your infrastructure" + }, + "group": 20000, + "label": "[root] var.ibmcloud_region", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ibmcloud_region", + "simple_name": "var.ibmcloud_region", + "svg_id": "node_23", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", + "description": "OS Image ID to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.image", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "image", + "simple_name": "var.image", + "svg_id": "node_24", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "default": "54376-g", + "description": "Instance profile to be used for virtual instances" + }, + "group": 20000, + "label": "[root] var.profile", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "profile", + "simple_name": "var.profile", + "svg_id": "node_25", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", + "definition": { + "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", + "description": "SSH Public Key contents to be used" + }, + "group": 20000, + "label": "[root] var.ssh_public_key", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "ssh_public_key", + "simple_name": "var.ssh_public_key", + "svg_id": "node_26", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", + "definition": { + "default": "vpc-fs2020-lab3", + "description": "Name of your VPC" + }, + "group": 20000, + "label": "[root] var.vpc_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "vpc_name", + "simple_name": "var.vpc_name", + "svg_id": "node_27", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "us-south-1", + "description": "Define the 1st zone of the region" + }, + "group": 20000, + "label": "[root] var.zone1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1", + "simple_name": "var.zone1", + "svg_id": "node_28", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "definition": { + "default": "172.16.1.0/24", + "description": "CIDR block to be used for zone 1" + }, + "group": 20000, + "label": "[root] var.zone1_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone1_cidr", + "simple_name": "var.zone1_cidr", + "svg_id": "node_29", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "us-south-2", + "description": "Define the 2nd zone of the region" + }, + "group": 20000, + "label": "[root] var.zone2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2", + "simple_name": "var.zone2", + "svg_id": "node_30", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "definition": { + "default": "172.16.2.0/24", + "description": "CIDR block to be used for zone 2" + }, + "group": 20000, + "label": "[root] var.zone2_cidr", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "zone2_cidr", + "simple_name": "var.zone2_cidr", + "svg_id": "node_31", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_32", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": { + "generation": 2, + "region": "${var.ibmcloud_region}" + }, + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_33", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.template (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "template", + "simple_name": "provider.template (close)", + "svg_id": "node_34", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_35", + "type": "" + } + ] +} \ No newline at end of file diff --git a/npm/example/demo-3/demo-3.svg b/npm/example/demo-3/demo-3.svg new file mode 100644 index 0000000..47af9a4 --- /dev/null +++ b/npm/example/demo-3/demo-3.svg @@ -0,0 +1,669 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + +cloud-init-apptier + + + +[root] provider.template + +provider + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/npm/example/demo-3/demonew-3.svg b/npm/example/demo-3/demonew-3.svg new file mode 100644 index 0000000..b847b20 --- /dev/null +++ b/npm/example/demo-3/demonew-3.svg @@ -0,0 +1,757 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + + + + +cloud-init-apptier + + + +[root] provider.template + +provider + + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + + ++ + + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + + ++ + + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + + ++ + + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + + ++ + + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + + ++ + + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + + ++ + + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + + ++ + + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + + ++ + + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + + ++ + + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + + ++ + + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + + ++ + + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/npm/example/demo-3/simple-demo-3.json b/npm/example/demo-3/simple-demo-3.json new file mode 100644 index 0000000..5bad87a --- /dev/null +++ b/npm/example/demo-3/simple-demo-3.json @@ -0,0 +1,549 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_0", + "target": "[root] ibm_iam_authorization_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_1", + "target": "[root] ibm_kp_key.test" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.flex-us-south", + "svg_id": "edge_2", + "target": "[root] ibm_resource_instance.cos_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_iam_authorization_policy.policy", + "svg_id": "edge_3", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_4", + "target": "[root] ibm_resource_instance.kp_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.test", + "svg_id": "edge_5", + "target": "[root] var.key_name" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_6", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_7", + "target": "[root] var.cos_name" + }, + { + "edge_type": 2, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_8", + "target": "[root] var.location" + }, + { + "edge_type": 2, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_9", + "target": "[root] var.pln" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_10", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.kp_instance", + "svg_id": "edge_11", + "target": "[root] var.kp_name" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_12", + "target": "[root] ibm_cos_bucket.flex-us-south" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_13", + "target": "[root] ibm_cos_bucket.flex-us-south" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_14", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_15", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 3, + "source": "[root] var.cos_name", + "svg_id": "edge_16", + "target": "[root] var.location" + }, + { + "edge_type": 3, + "source": "[root] var.location", + "svg_id": "edge_17", + "target": "[root] var.pln" + } + ], + "nodes": [ + { + "apply": { + "instances": [], + "mode": "managed", + "name": "flex-us-south", + "provider": "provider.ibm", + "type": "ibm_cos_bucket" + }, + "cluster": "root", + "definition": { + "bucket_name": "abuck3", + "key_protect": "${ibm_kp_key.test.id}", + "region_location": "us-south", + "resource_instance_id": "${ibm_resource_instance.cos_instance.id}", + "storage_class": "flex" + }, + "group": 20000, + "label": "[root] ibm_cos_bucket.flex-us-south", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cos_bucket.flex-us-south", + "change": { + "actions": [ + "create" + ], + "after": { + "bucket_name": "abuck3", + "cross_region_location": null, + "region_location": "us-south", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_protect": true, + "resource_instance_id": true, + "s3_endpoint_private": true, + "s3_endpoint_public": true + }, + "before": null + }, + "mode": "managed", + "name": "flex-us-south", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cos_bucket", + "values": { + "bucket_name": "abuck3", + "cross_region_location": null, + "region_location": "us-south", + "single_site_location": null, + "storage_class": "flex", + "timeouts": null + } + }, + "resource_name": "flex-us-south", + "simple_name": "ibm_cos_bucket.flex-us-south", + "svg_id": "node_0", + "type": "ibm_cos_bucket" + }, + { + "apply": null, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] ibm_iam_authorization_policy.policy", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "policy", + "simple_name": "ibm_iam_authorization_policy.policy", + "svg_id": "node_1", + "type": "ibm_iam_authorization_policy" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "test", + "provider": "provider.ibm", + "type": "ibm_kp_key" + }, + "cluster": "root", + "definition": { + "key_name": "${var.key_name}", + "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", + "standard_key": false + }, + "group": 20000, + "label": "[root] ibm_kp_key.test", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_kp_key.test", + "change": { + "actions": [ + "create" + ], + "after": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "test_key2", + "standard_key": false, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_id": true, + "key_protect_id": true, + "payload": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true + }, + "before": null + }, + "mode": "managed", + "name": "test", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_kp_key", + "values": { + "encrypted_nonce": null, + "iv_value": null, + "key_name": "test_key2", + "standard_key": false, + "timeouts": null + } + }, + "resource_name": "test", + "simple_name": "ibm_kp_key.test", + "svg_id": "node_2", + "type": "ibm_kp_key" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "location": "${var.location}", + "name": "${var.cos_name}", + "plan": "${var.pln}", + "service": "cloud-object-storage" + }, + "group": 20000, + "label": "[root] ibm_resource_instance.cos_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.cos_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "globals", + "name": "test_cos2", + "parameters": null, + "plan": "standards", + "resource_group_id": null, + "service": "cloud-object-storage", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "globals", + "name": "test_cos2", + "parameters": null, + "plan": "standards", + "resource_group_id": null, + "service": "cloud-object-storage", + "service_endpoints": null, + "tags": null, + "timeouts": null + } + }, + "resource_name": "cos_instance", + "simple_name": "ibm_resource_instance.cos_instance", + "svg_id": "node_3", + "type": "ibm_resource_instance" + }, + { + "apply": null, + "cluster": "root", + "definition": { + "location": "us-south", + "name": "${var.kp_name}", + "plan": "tiered-pricing", + "service": "mks" + }, + "group": 20000, + "label": "[root] ibm_resource_instance.kp_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.kp_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "mks", + "service_endpoints": null, + "tags": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "kp_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "us-south", + "name": "test_kp2", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "mks", + "service_endpoints": null, + "tags": null, + "timeouts": null + } + }, + "resource_name": "kp_instance", + "simple_name": "ibm_resource_instance.kp_instance", + "svg_id": "node_4", + "type": "ibm_resource_instance" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_5", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "test_cos2" + }, + "group": 20000, + "label": "[root] var.cos_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "cos_name", + "simple_name": "var.cos_name", + "svg_id": "node_6", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_kp_key.test_var_", + "definition": { + "default": "test_key2" + }, + "group": 20000, + "label": "[root] var.key_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "key_name", + "simple_name": "var.key_name", + "svg_id": "node_7", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.kp_instance_var_", + "definition": { + "default": "test_kp2" + }, + "group": 20000, + "label": "[root] var.kp_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "kp_name", + "simple_name": "var.kp_name", + "svg_id": "node_8", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "globals" + }, + "group": 20000, + "label": "[root] var.location", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "location", + "simple_name": "var.location", + "svg_id": "node_9", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "definition": { + "default": "standards" + }, + "group": 20000, + "label": "[root] var.pln", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "resource_name": "pln", + "simple_name": "var.pln", + "svg_id": "node_10", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_11", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_12", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_13", + "type": "" + } + ] +} + diff --git a/npm/example/demo-3/simple-demo-3.svg b/npm/example/demo-3/simple-demo-3.svg new file mode 100644 index 0000000..5521d4d --- /dev/null +++ b/npm/example/demo-3/simple-demo-3.svg @@ -0,0 +1,231 @@ + + + + + + +%3 + + +cluster[root] ibm_resource_instance.cos_instance_var_ + + +cluster[root] ibm_kp_key.test_var_ + + +cluster[root] ibm_resource_instance.kp_instance_var_ + + + +[root] ibm_cos_bucket.flex-us-south + +ibm_cos_bucket + + ++ + + +flex-us-south + + + +[root] ibm_kp_key.test + +ibm_kp_key + + ++ + + +test + + + +[root] ibm_cos_bucket.flex-us-south->[root] ibm_kp_key.test + + + + + +[root] ibm_resource_instance.cos_instance + +ibm_resource_instance + + ++ + + +cos_instance + + + +[root] ibm_cos_bucket.flex-us-south->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_resource_instance.kp_instance + +ibm_resource_instance + + ++ + + +kp_instance + + + +[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance + + + + + +[root] var.key_name + +var + + +key_name + + + +[root] ibm_kp_key.test->[root] var.key_name + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_resource_instance.cos_instance->[root] provider.ibm + + + + + +[root] var.cos_name + +var + + +cos_name + + + +[root] ibm_resource_instance.cos_instance->[root] var.cos_name + + + + + +[root] ibm_resource_instance.kp_instance->[root] provider.ibm + + + + + +[root] var.kp_name + +var + + +kp_name + + + +[root] ibm_resource_instance.kp_instance->[root] var.kp_name + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_cos_bucket.flex-us-south + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_cos_bucket.flex-us-south + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] var.location + +var + + +location + + + +[root] var.cos_name->[root] var.location + + + + +[root] var.pln + +var + + +pln + + + +[root] var.location->[root] var.pln + + + + + diff --git a/npm/example/demo-4/demo-4.json b/npm/example/demo-4/demo-4.json new file mode 100644 index 0000000..190a661 --- /dev/null +++ b/npm/example/demo-4/demo-4.json @@ -0,0 +1,339 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] azurerm_resource_group.rg", + "svg_id": "edge_0", + "target": "[root] provider.azurerm" + }, + { + "edge_type": 1, + "source": "[root] azurerm_resource_group.rg", + "svg_id": "edge_1", + "target": "[root] var.location" + }, + { + "edge_type": 2, + "source": "[root] azurerm_resource_group.rg", + "svg_id": "edge_2", + "target": "[root] var.resource_group" + }, + { + "edge_type": 1, + "source": "[root] azurerm_search_service.search", + "svg_id": "edge_3", + "target": "[root] azurerm_resource_group.rg" + }, + { + "edge_type": 1, + "source": "[root] azurerm_search_service.search", + "svg_id": "edge_4", + "target": "[root] var.partition_count" + }, + { + "edge_type": 2, + "source": "[root] azurerm_search_service.search", + "svg_id": "edge_5", + "target": "[root] var.replica_count" + }, + { + "edge_type": 2, + "source": "[root] azurerm_search_service.search", + "svg_id": "edge_6", + "target": "[root] var.search_name" + }, + { + "edge_type": 2, + "source": "[root] azurerm_search_service.search", + "svg_id": "edge_7", + "target": "[root] var.sku" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (count boundary fixup)", + "svg_id": "edge_8", + "target": "[root] output.Azure Search Service" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (count boundary fixup)", + "svg_id": "edge_9", + "target": "[root] var.hosting_mode" + }, + { + "edge_type": 1, + "source": "[root] output.Azure Search Service", + "svg_id": "edge_10", + "target": "[root] azurerm_search_service.search" + }, + { + "edge_type": 1, + "source": "[root] provider.azurerm (close)", + "svg_id": "edge_11", + "target": "[root] azurerm_search_service.search" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_12", + "target": "[root] meta.count-boundary (count boundary fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_13", + "target": "[root] provider.azurerm (close)" + }, + { + "edge_type": 3, + "source": "[root] var.location", + "svg_id": "edge_14", + "target": "[root] var.resource_group" + }, + { + "edge_type": 3, + "source": "[root] var.partition_count", + "svg_id": "edge_15", + "target": "[root] var.replica_count" + }, + { + "edge_type": 3, + "source": "[root] var.replica_count", + "svg_id": "edge_16", + "target": "[root] var.search_name" + }, + { + "edge_type": 3, + "source": "[root] var.search_name", + "svg_id": "edge_17", + "target": "[root] var.sku" + } + ], + "nodes": [ + { + "cluster": "root", + "definition": { + "location": "${var.location}", + "name": "${var.resource_group}" + }, + "group": 20000, + "label": "[root] azurerm_resource_group.rg", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "rg", + "simple_name": "azurerm_resource_group.rg", + "svg_id": "node_0", + "type": "azurerm_resource_group" + }, + { + "cluster": "root", + "definition": { + "location": "${var.location}", + "name": "${var.search_name}", + "partition_count": "${var.partition_count}", + "replica_count": "${var.replica_count}", + "resource_group_name": "${azurerm_resource_group.rg.name}", + "sku": "${var.sku}" + }, + "group": 20000, + "label": "[root] azurerm_search_service.search", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "search", + "simple_name": "azurerm_search_service.search", + "svg_id": "node_1", + "type": "azurerm_search_service" + }, + { + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.azurerm", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "azurerm", + "simple_name": "provider.azurerm", + "svg_id": "node_2", + "type": "provider" + }, + { + "cluster": "cluster[root] azurerm_resource_group.rg_var_", + "definition": { + "default": "southcentralus", + "description": "The location/region where the search service is created. Changing this forces a new resource to be created." + }, + "group": 20000, + "label": "[root] var.location", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "location", + "simple_name": "var.location", + "svg_id": "node_3", + "type": "var" + }, + { + "cluster": "cluster[root] azurerm_resource_group.rg_var_", + "definition": { + "description": "The name of the resource group in which to create search service" + }, + "group": 20000, + "label": "[root] var.resource_group", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "resource_group", + "simple_name": "var.resource_group", + "svg_id": "node_4", + "type": "var" + }, + { + "cluster": "cluster[root] azurerm_search_service.search_var_", + "definition": { + "default": 1, + "description": "Partitions allow for scaling of document count as well as faster indexing by sharding your index over multiple Azure Search units. Allowed values: 1, 2, 3, 4, 6, 12" + }, + "group": 20000, + "label": "[root] var.partition_count", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "partition_count", + "simple_name": "var.partition_count", + "svg_id": "node_5", + "type": "var" + }, + { + "cluster": "cluster[root] azurerm_search_service.search_var_", + "definition": { + "default": 1, + "description": "Replicas distribute search workloads across the service. You need 2 or more to support high availability (applies to Basic and Standard only)." + }, + "group": 20000, + "label": "[root] var.replica_count", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "replica_count", + "simple_name": "var.replica_count", + "svg_id": "node_6", + "type": "var" + }, + { + "cluster": "cluster[root] azurerm_search_service.search_var_", + "definition": { + "description": "Service name must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and is limited between 2 and 60 characters in length." + }, + "group": 20000, + "label": "[root] var.search_name", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "search_name", + "simple_name": "var.search_name", + "svg_id": "node_7", + "type": "var" + }, + { + "cluster": "cluster[root] azurerm_search_service.search_var_", + "definition": { + "default": "standard", + "description": "Valid values are 'free', 'standard', 'standard2', and 'standard3' (2 & 3 must be enabled on the backend by Microsoft support). 'free' provisions the service in shared clusters. 'standard' provisions the service in dedicated clusters." + }, + "group": 20000, + "label": "[root] var.sku", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "sku", + "simple_name": "var.sku", + "svg_id": "node_8", + "type": "var" + }, + { + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (count boundary fixup)", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (count boundary fixup)", + "svg_id": "node_9", + "type": "meta" + }, + { + "cluster": "cluster[root] meta.count-boundary (count boundary fixup)_output_[root] azurerm_search_service.search", + "definition": "", + "group": 20000, + "label": "[root] output.Azure Search Service", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "Azure", + "simple_name": "output.Azure Search Service", + "svg_id": "node_10", + "type": "output" + }, + { + "cluster": "cluster[root] meta.count-boundary (count boundary fixup)_var_", + "definition": { + "default": "default", + "description": "Applicable only for SKU set to standard3. You can set this property to enable a single, high density partition that allows up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. Allowed values: default, highDensity" + }, + "group": 20000, + "label": "[root] var.hosting_mode", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "hosting_mode", + "simple_name": "var.hosting_mode", + "svg_id": "node_11", + "type": "var" + }, + { + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] provider.azurerm (close)", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "azurerm", + "simple_name": "provider.azurerm (close)", + "svg_id": "node_12", + "type": "provider" + }, + { + "cluster": "root", + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "resource_name": "", + "simple_name": "root", + "svg_id": "node_13", + "type": "" + } + ] +} \ No newline at end of file diff --git a/npm/example/demo-4/demo-4.svg b/npm/example/demo-4/demo-4.svg new file mode 100644 index 0000000..5de2fbd --- /dev/null +++ b/npm/example/demo-4/demo-4.svg @@ -0,0 +1,208 @@ + + +%3 + + +cluster[root] azurerm_resource_group.rg_var_ + + +cluster[root] azurerm_search_service.search_var_ + + +cluster[root] meta.count-boundary (count boundary fixup)_var_ + + +cluster[root] meta.count-boundary (count boundary fixup)_output_[root] azurerm_search_service.search + + + +[root] azurerm_resource_group.rg + +azurerm_resource_group + +rg + + + +[root] provider.azurerm + +provider + +azurerm + + + +[root] azurerm_resource_group.rg->[root] provider.azurerm + + + + + +[root] var.location + +var + +location + + + +[root] azurerm_resource_group.rg->[root] var.location + + + + + +[root] azurerm_search_service.search + +azurerm_search_service + +search + + + +[root] azurerm_search_service.search->[root] azurerm_resource_group.rg + + + + + +[root] var.partition_count + +var + +partition_count + + + +[root] azurerm_search_service.search->[root] var.partition_count + + + + + +[root] meta.count-boundary (count boundary fixup) + +meta + +count-boundary + + + +[root] var.hosting_mode + +var + +hosting_mode + + + +[root] meta.count-boundary (count boundary fixup)->[root] var.hosting_mode + + + + + +[root] output.Azure Search Service + +output + +Azure + + + +[root] meta.count-boundary (count boundary fixup)->[root] output.Azure Search Service + + + + + +[root] provider.azurerm (close) + +provider + +azurerm + + + +[root] provider.azurerm (close)->[root] azurerm_search_service.search + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (count boundary fixup) + + + + + +[root] root->[root] provider.azurerm (close) + + + + + +[root] var.resource_group + +var + +resource_group + + + +[root] var.location->[root] var.resource_group + + + + +[root] var.replica_count + +var + +replica_count + + + +[root] var.partition_count->[root] var.replica_count + + + + +[root] var.search_name + +var + +search_name + + + +[root] var.replica_count->[root] var.search_name + + + + +[root] var.sku + +var + +sku + + + +[root] var.search_name->[root] var.sku + + + + +[root] output.Azure Search Service->[root] azurerm_search_service.search + + + + + \ No newline at end of file diff --git a/npm/example/demo-4/demonew-4.svg b/npm/example/demo-4/demonew-4.svg new file mode 100644 index 0000000..b847b20 --- /dev/null +++ b/npm/example/demo-4/demonew-4.svg @@ -0,0 +1,757 @@ + + + + + + +%3 + + +cluster[root] provider.ibm_var_ + + +cluster[root] ibm_is_ssh_key.ssh1_var_ + + +cluster[root] ibm_is_vpc.vpc1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ + + +cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + + +[root] data.template_cloudinit_config.cloud-init-apptier + +template_cloudinit_config + + + + +cloud-init-apptier + + + +[root] provider.template + +provider + + +template + + + +[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template + + + + + +[root] ibm_is_floating_ip.floatingip1 + +ibm_is_floating_ip + + ++ + + +floatingip1 + + + +[root] ibm_is_instance.instance1 + +ibm_is_instance + + ++ + + +instance1 + + + +[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_floating_ip.floatingip2 + +ibm_is_floating_ip + + ++ + + +floatingip2 + + + +[root] ibm_is_instance.instance2 + +ibm_is_instance + + ++ + + +instance2 + + + +[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_ssh_key.ssh1 + +ibm_is_ssh_key + + ++ + + +ssh1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet1 + +ibm_is_subnet + + ++ + + +subnet1 + + + +[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 + + + + + +[root] var.image + +var + + +image + + + +[root] ibm_is_instance.instance1->[root] var.image + + + + + +[root] var.profile + +var + + +profile + + + +[root] ibm_is_instance.instance1->[root] var.profile + + + + + +[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 + + + + + +[root] ibm_is_subnet.subnet2 + +ibm_is_subnet + + ++ + + +subnet2 + + + +[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_instance.instance2->[root] var.image + + + + + +[root] ibm_is_instance.instance2->[root] var.profile + + + + + +[root] ibm_is_lb.lb1 + +ibm_is_lb + + ++ + + +lb1 + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 + + + + + +[root] ibm_is_lb_listener.lb1-listener + +ibm_is_lb_listener + + ++ + + +lb1-listener + + + +[root] ibm_is_lb_pool.lb1-pool + +ibm_is_lb_pool + + ++ + + +lb1-pool + + + +[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member1 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2 + +ibm_is_lb_pool_member + + ++ + + +lb1-pool-member2 + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 + + + + + +[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_22 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + +ibm_is_security_group_rule + + ++ + + +sg1_tcp_rule_80 + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] provider.ibm + +provider + + +ibm + + + +[root] ibm_is_ssh_key.ssh1->[root] provider.ibm + + + + + +[root] var.ssh_public_key + +var + + +ssh_public_key + + + +[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap1 + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2 + +ibm_is_vpc_address_prefix + + ++ + + +vpc-ap2 + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 + + + + + +[root] ibm_is_vpc.vpc1 + +ibm_is_vpc + + ++ + + +vpc1 + + + +[root] ibm_is_vpc.vpc1->[root] provider.ibm + + + + + +[root] var.vpc_name + +var + + +vpc_name + + + +[root] ibm_is_vpc.vpc1->[root] var.vpc_name + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone1 + +var + + +zone1 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 + + + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 + + + + + +[root] var.zone2 + +var + + +zone2 + + + +[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 + + + + + +[root] var.ibmcloud_region + +var + + +ibmcloud_region + + + +[root] provider.ibm->[root] var.ibmcloud_region + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + + +count-boundary + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] output.FloatingIP-1 + +output + + +FloatingIP-1 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 + + + + + +[root] output.FloatingIP-2 + +output + + +FloatingIP-2 + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 + + + + + +[root] output.LB-Hostname + +output + + +LB-Hostname + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname + + + + + +[root] provider.ibm (close) + +provider + + +ibm + + + +[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 + + + + + +[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 + + + + + +[root] provider.template (close) + +provider + + +template + + + +[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier + + + + + +[root] root + +[root] root + + + +[root] root->[root] meta.count-boundary (EachMode fixup) + + + + + +[root] root->[root] provider.ibm (close) + + + + + +[root] root->[root] provider.template (close) + + + + + +[root] var.zone1_cidr + +var + + +zone1_cidr + + + +[root] var.zone1->[root] var.zone1_cidr + + + + +[root] var.zone2_cidr + +var + + +zone2_cidr + + + +[root] var.zone2->[root] var.zone2_cidr + + + + +[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 + + + + + +[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 + + + + + +[root] output.LB-Hostname->[root] ibm_is_lb.lb1 + + + + + diff --git a/npm/example/index.html b/npm/example/index.html new file mode 100644 index 0000000..6936f6f --- /dev/null +++ b/npm/example/index.html @@ -0,0 +1,229 @@ + + + + Blast Radius (Terraform Graph Tools) + + + + + + + + + + + + +
    + + +
    + + +
    +
    test
    + + + + + \ No newline at end of file diff --git a/npm/src/blast-radius.js b/npm/src/blast-radius.js new file mode 100644 index 0000000..5ccf37e --- /dev/null +++ b/npm/src/blast-radius.js @@ -0,0 +1,807 @@ +import * as d3 from 'd3'; +import d3Tip from 'd3-tip'; +import { resource_groups } from './categories'; +import { resource_types } from './resource-types'; +import svgPanZoom from 'svg-pan-zoom'; +import $ from 'jquery'; +import 'selectize'; +import '@fortawesome/fontawesome-free/js/all'; + +const mycolors = [ + "#e1c9ec", + "#90c793", + "#ffeaae", + "#faa5b3", + "#eca58f", + "#9698dd", + "#c6ffc4", + "#b6cbd2", + "#ccaca1", + "#ff9130", + "#abef70", + "#daadad", + "#7f74f6", + "#af6b8d" +]; + +// +// terraform-graph.js +// + +// enumerate the various kinds of edges that Blast Radius understands. +// only NORMAL and LAYOUT_SHOWN will show up in the , but all four +// will likely appear in the json representation. +var edge_types = { + NORMAL: 1, // what we talk about when we're talking about edges. + HIDDEN: 2, // these are normal edges, but aren't drawn. + LAYOUT_SHOWN: 3, // these edges are drawn, but aren't "real" edges + LAYOUT_HIDDEN: 4, // these edges are not drawn, aren't "real" edges, but inform layout. +} + +// Sometimes we have escaped newlines (\n) in json strings. we want
    instead. +// FIXME: much better line wrapping is probably possible. +var replacer = function (key, value) { + if (typeof value == 'string') { + return value.replace(/\n/g, '
    '); + } + return value; +} + +var build_uri = function (url, params) { + url += '?' + for (var key in params) + url += key + '=' + params[key] + '&'; + return url.slice(0, -1); +} + +var to_list = function (obj) { + var lst = []; + for (var k in obj) + lst.push(obj[k]); + return lst; +} + +var group_resources = function (node) { + var unum = -1; + var nodeType = node.type; + if (nodeType in resource_groups) return resource_groups[nodeType]; + Object.keys(resource_types).forEach(function (key) { + if (nodeType.indexOf(key) !== -1) unum = resource_types[key]; + }); + return unum; +} + +var Queue = function () { + this._oldestIndex = 1; + this._newestIndex = 1; + this._storage = {}; +} + +Queue.prototype.size = function () { + return this._newestIndex - this._oldestIndex; +}; + +Queue.prototype.enqueue = function (data) { + this._storage[this._newestIndex] = data; + this._newestIndex++; +}; + +Queue.prototype.dequeue = function () { + var oldestIndex = this._oldestIndex, + newestIndex = this._newestIndex, + deletedData; + + if (oldestIndex !== newestIndex) { + deletedData = this._storage[oldestIndex]; + delete this._storage[oldestIndex]; + this._oldestIndex++; + + return deletedData; + } +}; + +// Takes a unique selector, e.g. "#demo-1", and +// appends svg xml from svg_url, and takes graph +// info from json_url to highlight/annotate it. +var blastradius = function (selector, svg_url, json_url, br_state) { + + // TODO: remove scale. + var scale = null + + // mainly for d3-tips + var class_selector = '.' + selector.slice(1, selector.length); + + + // we should have an object to keep track of state with, but if we + // don't, just fudge one. + if (!br_state) { + var br_state = {}; + } + + // if we haven't already got an entry in br_state to manage our + // state with, go ahead and create one. + if (!br_state[selector]) { + br_state[selector] = {}; + } + + var state = br_state[selector]; + var container = d3.select(selector); + + // color assignments (resource_type : rgb) are stateful. If we use a new palette + // every time the a subgraph is selected, the color assignments would differ and + // become confusing. + // var color = (state['color'] ? d3.scaleOrdinal(state['color']) : d3.scaleOrdinal(d3['schemeCategory20'])); + var color = (state['color'] ? d3.scaleOrdinal(state['color']) : d3.scaleOrdinal(d3['schemeCategory20'])); + var disableSvgZoom = state['disableSvgZoom'] ? state['disableSvgZoom'] : false; + var disableTooltip = state['disableTooltip'] ? state['disableTooltip'] : false; + + // 1st pull down the svg, and append it to the DOM as a child + // of our selector. If added as , we wouldn't + // be able to manipulate x.svg with d3.js, or other DOM fns. + d3.xml(svg_url, function (error, xml) { + d3.select(selector).selectAll("svg").remove(); + + container.node() + .appendChild(document.importNode(xml.documentElement, true)); + + // remove s in svg; graphviz leaves these here and they + // trigger useless tooltips. + d3.select(selector).selectAll('title').remove(); + + // remove any d3-tips we've left lying around + d3.selectAll(class_selector + '-d3-tip').remove(); + + // make sure the svg uses 100% of the viewport, so that pan/zoom works + // as expected and there's no clipping. + d3.select(selector + ' svg').attr('width', '100%').attr('height', '100%'); + + // Obtain the graph description. Doing this within the + // d3.xml success callback, to guaruntee the svg/xml + // has loaded. + d3.json(json_url, function (error, data) { + var edges = data.edges; + var svg_nodes = []; + var nodes = {}; + data.nodes.forEach(function (node) { + if (!(node.type in resource_groups)) + // console.log(node.group, node.type) + if (node.label == '[root] root') { // FIXME: w/ tf 0.11.2, resource_name not set by server. + node.resource_name = 'root'; + } + node.group = group_resources(node); + // console.log(node.resource_name, node.group, node.type) + nodes[node['label']] = node; + svg_nodes.push(node); + }); + + // convenient to access edges by their source. + var edges_by_source = {} + for (var i in edges) { + if (edges[i].source in edges_by_source) + edges_by_source[edges[i].source].push(edges[i]); + else + edges_by_source[edges[i].source] = [edges[i]]; + } + + // convenient access to edges by their target. + var edges_by_target = {} + for (var i in edges) { + if (edges[i].target in edges_by_target) + edges_by_target[edges[i].target].push(edges[i]); + else + edges_by_target[edges[i].target] = [edges[i]]; + } + + var svg = container.select('svg'); + if (scale != null) { + svg.attr('height', scale).attr('width', scale); + } + + var render_tooltip = function (d) { + var title_cbox = document.querySelector(selector + '-tooltip-title'); + var json_cbox = document.querySelector(selector + '-tooltip-json'); + var deps_cbox = document.querySelector(selector + '-tooltip-deps'); + + if ((!title_cbox) || (!json_cbox) || (!deps_cbox)) + return title_html(d) + (d.definition.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.definition, replacer, 2) + "</p><br>" + child_html(d)); + + var ttip = ''; + if (title_cbox.checked) + ttip += title_html(d); + if (json_cbox.checked) + ttip += (d.definition.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.definition, replacer, 2) + "</p><br>"); + if (deps_cbox.checked) + ttip += child_html(d); + return ttip; + } + + // setup tooltips + var tip; + if (!disableTooltip) { + tip = d3Tip() + .attr('class', class_selector.slice(1, class_selector.length) + '-d3-tip d3-tip') + .offset([-10, 0]) + .html(render_tooltip); + svg.call(tip); + } + + // returns <div> element representinga node's title and module namespace. + var title_html = function (d) { + var node = d; + var title = ['<div class="header">'] + if (node.modules.length <= 1 && node.modules[0] == 'root') { + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + else { + for (var i in node.modules) { + title[title.length] = '<span class="title" style="background: ' + color('(M) ' + node.modules[i]) + ';">' + node.modules[i] + '</span>'; + } + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="title" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + title[title.length] = '</div>' + return title.join(''); + } + + // returns <div> element representing node's title and module namespace. + // intended for use in an interactive searchbox. + var searchbox_listing = function (d) { + var node = d; + var title = ['<div class="sbox-listings">'] + if (node.modules.length <= 1 && node.modules[0] == 'root') { + if (node.type) + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + else { + for (var i in node.modules) { + title[title.length] = '<span class="sbox-listing" style="background: ' + color('(M) ' + node.modules[i]) + ';">' + node.modules[i] + '</span>'; + } + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + title[title.length] = '<span class="sbox-listing" style="background:' + color(node.group) + ';">' + node.resource_name + '</span>'; + } + title[title.length] = '</div>' + return title.join(''); + } + + // returns <span> elements representing a node's direct children + var child_html = function (d) { + var children = []; + var edges = edges_by_source[d.label]; + for (i in edges) { + var edge = edges[i]; + if (edge.edge_type == edge_types.NORMAL || edge.edge_type == edge_types.HIDDEN) { + var node = nodes[edge.target]; + if (node.modules.length <= 1 && node.modules[0] == 'root') { + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.resource_name + '</span></br>'; + } + else { + for (var i in node.modules) { + children[children.length] = '<span class="dep" style="background: ' + color('(M) ' + node.modules[i]) + ';">' + node.modules[i] + '</span>'; + } + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.type + '</span>'; + children[children.length] = '<span class="dep" style="background:' + color(node.group) + ';">' + node.resource_name + '</span></br>'; + } + + } + } + return children.join(''); + } + + var tfstate_html = function (d) { + var title = "tf state info" + var ttip = ''; + ttip += title_html(d); + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + title + '</span><br><br>' + (d.definition.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.definition, replacer, 2) + "</p><br>" + '<hr style="background-color:black"/>'); + ttip += child_html(d); + return ttip; + } + + var apply_html = function (d) { + var apply_title = "apply info" + var ttip = ''; + ttip += title_html(d); + if (d.apply == null) { + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>' + ("<p class='explain'>" + "resource apply failed" + "</p><br>" + '<hr style="background-color:black"/>'); + } + else { + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>' + (d.apply.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.apply, replacer, 2) + "</p><br>" + '<hr style="background-color:black"/>'); + } + ttip += child_html(d); + return ttip; + } + + var plan_html = function (d) { + var plan_title = "plan info" + var ttip = ''; + ttip += title_html(d); + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + plan_title + '</span><br><br>' + (d.plan.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.plan, replacer, 2) + "</p><br>" + '<hr style="background-color:black"/>'); + ttip += child_html(d); + return ttip; + } + + var get_downstream_nodes = function (node) { + var children = {}; + children[node.label] = node; + var visit_queue = new Queue(); + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_source[cur_node.label]; + for (var i in edges) { + if (edges[i].target in children) + continue; + var n = nodes[edges[i].target]; + children[n.label] = n; + visit_queue.enqueue(n); + } + } + return to_list(children); + } + + var get_upstream_nodes = function (node) { + var parents = {}; + parents[node.label] = node; + var visit_queue = new Queue(); + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_target[cur_node.label]; + for (var i in edges) { + if (edges[i].source in parents) + continue; + var n = nodes[edges[i].source]; + parents[n.label] = n; + visit_queue.enqueue(n); + } + } + return to_list(parents); + } + + var get_downstream_edges = function (node) { + var ret_edges = new Set(); + var children = new Set(); + var visit_queue = new Queue(); + var e; + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_source[cur_node.label]; + for (var i in edges) { + e = edges[i]; + if (e in ret_edges || e.edge_type == edge_types.HIDDEN || e.edge_type == edge_types.LAYOUT_HIDDEN) + continue; + var n = nodes[edges[i].target]; + ret_edges.add(e); + children.add(n); + visit_queue.enqueue(n); + } + } + return Array.from(ret_edges); + } + + var get_upstream_edges = function (node) { + var ret_edges = new Set(); + var parents = new Set(); + var visit_queue = new Queue(); + var e; + visit_queue.enqueue(node); + while (visit_queue.size() > 0) { + var cur_node = visit_queue.dequeue(); + var edges = edges_by_target[cur_node.label]; + for (var i in edges) { + e = edges[i]; + if (e in ret_edges || e.edge_type == edge_types.HIDDEN || e.edge_type == edge_types.LAYOUT_HIDDEN) + continue; + var n = nodes[edges[i].source]; + ret_edges.add(e); + parents.add(n); + visit_queue.enqueue(n); + } + } + return Array.from(ret_edges); + } + + // + // mouse event handling + // + // * 1st click (and mouseover): highlight downstream connections, only + tooltip + // * 2nd click: highlight upstream and downstream connections + no tooltip + // * 3rd click: return to normal (no-selection/highlights) + // + + var click_count = 0; + var sticky_node = null; + + // FIXME: these x,y,z-s pad out parameters I haven't looked up, + // FIXME: but don't seem to be necessary for display + var node_mousedown = function (d, x, y, z, no_tip_p) { + if (sticky_node == d && click_count == 1) { + tip && tip.hide(d, this); + highlight(d, true, true); + click_count += 1; + } + else if (sticky_node == d && click_count == 2) { + unhighlight(d); + tip && tip.hide(d, this); + sticky_node = null; + click_count = 0; + } + else { + if (sticky_node) { + unhighlight(sticky_node); + tip && tip.hide(sticky_node, this); + } + sticky_node = d; + click_count = 1; + highlight(d, true, false); + if (no_tip_p === undefined) { + tip && tip.show(d, this) + .direction(tipdir(d)) + .offset(tipoff(d)); + } + } + } + + var node_mouseleave = function (d) { + tip && tip.hide(d, this); + } + + var node_mouseenter = function (d) { + tip && tip.show(d, this) + .direction(tipdir(d)) + .offset(tipoff(d)); + } + + var node_mouseover = function (d) { + if (!sticky_node) + highlight(d, true, false); + } + + var node_mouseout = function (d) { + if (sticky_node == d) { + return; + } + else if (!sticky_node) { + unhighlight(d); + } + else { + if (click_count == 2) + highlight(sticky_node, true, true); + else + highlight(sticky_node, true, false); + } + + } + + var tipdir = function (d) { + return 'n'; + } + + var tipoff = function (d) { + return [-10, 0]; + } + + var highlight = function (d, downstream, upstream) { + + var highlight_nodes = []; + var highlight_edges = []; + + if (downstream) { + highlight_nodes = highlight_nodes.concat(get_downstream_nodes(d)); + highlight_edges = highlight_edges.concat(get_downstream_edges(d)); + } + + if (upstream) { + highlight_nodes = highlight_nodes.concat(get_upstream_nodes(d)); + highlight_edges = highlight_edges.concat(get_upstream_edges(d)); + } + + svg.selectAll('g.node') + .data(highlight_nodes, function (d) { return (d && d.svg_id) || d3.select(this).attr("id"); }) + .attr('opacity', 1.0) + .exit() + .attr('opacity', 0.2); + + svg.selectAll('g.edge') + .data(highlight_edges, function (d) { return d && d.svg_id || d3.select(this).attr("id"); }) + .attr('opacity', 1.0) + .exit() + .attr('opacity', 0.0); + } + + var unhighlight = function (d) { + svg.selectAll('g.node') + .attr('opacity', 1.0); + svg.selectAll('g.edge') + .attr('opacity', 1.0) + + } + + // click event handling + var tfstatenode_click = function (d) { + var html = tfstate_html(d); + state.htmlCallback && state.htmlCallback(html); + } + + var applynode_click = function (d) { + var html = apply_html(d); + state.htmlCallback && state.htmlCallback(html); + } + + var plannode_click = function (d) { + var html = plan_html(d); + state.htmlCallback && state.htmlCallback(html); + } + + var gnodes = svg.selectAll('g.node') + .data(svg_nodes, function (d) { + return (d && d.svg_id) || d3.select(this).attr("id"); + }); + + gnodes.each(function (d, i) { + var _self = this; + var selectorMain, selectorTFState, selectorPlan, selectorApply; + + var polysize = d3.select(_self).selectAll('polygon').size(); + + if (polysize == 1) { + selectorMain = "polygon:nth-last-of-type(1)"; + } + + if (polysize == 2) { + selectorMain = "polygon:nth-last-of-type(2)"; + } + + if (polysize == 3) { + selectorMain = "polygon:nth-last-of-type(3)"; + selectorTFState = "polygon:nth-last-of-type(2)"; + } + + if (polysize == 5) { + selectorMain = "polygon:nth-last-of-type(5)"; + selectorTFState = "polygon:nth-last-of-type(4)"; + selectorPlan = "polygon:nth-last-of-type(3)"; + selectorApply = "polygon:nth-last-of-type(2)"; + } + + if (selectorMain !== undefined) { + d3.select(_self) + .selectAll(selectorMain) + .style('fill', (function (i) { + return color(d.group); + })); + } + + if (selectorTFState !== undefined) { + d3.select(_self) + .select(selectorTFState) + .on('click', tfstatenode_click) + .style('fill', (function (i) { + return "#00CCFF"; + })); + } + + if (selectorPlan !== undefined) { + d3.select(_self) + .select(selectorPlan) + .on('click', (function (d) { + if (d.type == "var" || d.type == "provider" || d.type == "meta" || d.type == "output") + return ""; + else + return plannode_click(d); + })) + .style('fill', (function (i) { + if (d) { + if (d.type == "var" || d.type == "provider" || d.type == "meta" || d.type == "output") + return "fff"; + else + return "#ffff00"; + } + else + return '#000'; + })); + } + + if (!selectorApply !== undefined) { + d3.select(_self) + .select(selectorApply) + .on('click', applynode_click) + .style('fill', (function (i) { + if (d) { + if (d.apply == null) { + return "#ff0000"; + } + else if (d.apply == "not yet applied") { + return "#708090"; + } + else + return "#00ff40"; + } + else + return '#000'; + })); + } + }); + + // colorize nodes, and add mouse candy. + gnodes + .on('mouseenter', node_mouseenter) + .on('mouseleave', node_mouseleave) + .on('mouseover', node_mouseover) + .on('mouseout', node_mouseout) + .on('mousedown', node_mousedown); + + // colorize modules + svg.selectAll('polygon') + .each(function (d, i) { + if (d != undefined) + return undefined; + var sibling = this.nextElementSibling; + if (sibling) { + if (sibling.innerHTML.match(/\(M\)/)) { + this.setAttribute('fill', color(sibling.innerHTML)); + } + } + }); + + // hack to make mouse events and coloration work on the root node again. + var root = nodes['[root] root']; + svg.selectAll('g.node#' + root.svg_id) + .data(svg_nodes, function (d) { + return (d && d.svg_id) || d3.select(this).attr("id"); + }) + .on('mouseover', node_mouseover) + .on('mouseout', node_mouseout) + .on('mousedown', node_mousedown) + .select('polygon') + .attr('fill', function (d) { return color(d.group); }) + .style('fill', (function (d) { + if (d) + return color(d.group); + else + return '#000'; + })); + + // stub, in case we want to do something with edges on init. + svg.selectAll('g.edge') + .data(edges, function (d) { return d && d.svg_id || d3.select(this).attr("id"); }); + + // blast-radius --serve mode stuff. check for a zoom-in button as a proxy + // for whether other facilities will be available. + if (d3.select(selector + '-zoom-in')) { + var zin_btn = document.querySelector(selector + '-zoom-in'); + var zout_btn = document.querySelector(selector + '-zoom-out'); + var refocus_btn = document.querySelector(selector + '-refocus'); + var download_btn = document.querySelector(selector + '-download') + var svg_el = document.querySelector(selector + ' svg'); + var panzoom; + + if (!disableSvgZoom) { + panzoom = svgPanZoom(svg_el).disableDblClickZoom(); + } + + if (state['no_scroll_zoom'] == true) { + panzoom && panzoom.disableMouseWheelZoom(); + } + + var handle_zin = function (ev) { + ev.preventDefault(); + panzoom && panzoom.zoomIn(); + } + + zin_btn && zin_btn.addEventListener('click', handle_zin); + + var handle_zout = function (ev) { + ev.preventDefault(); + panzoom && panzoom.zoomOut(); + } + zout_btn && zout_btn.addEventListener('click', handle_zout); + + var handle_refocus = function () { + if (sticky_node) { + $(selector + ' svg').remove(); + clear_listeners(); + if (!state['params']) + state.params = {} + state.params.refocus = encodeURIComponent(sticky_node.label); + + svg_url = svg_url.split('?')[0]; + json_url = json_url.split('?')[0]; + + blastradius(selector, build_uri(svg_url, state.params), build_uri(json_url, state.params), br_state); + } + } + + // this feature is disabled for embedded images on static sites... + refocus_btn && refocus_btn.addEventListener('click', handle_refocus); + + var handle_download = function () { + // svg extraction and download as data url borrowed from + // http://bl.ocks.org/curran/7cf9967028259ea032e8 + var svg_el = document.querySelector(selector + ' svg') + var svg_as_xml = (new XMLSerializer).serializeToString(svg_el); + var svg_data_url = "data:image/svg+xml," + encodeURIComponent(svg_as_xml); + var dl = document.createElement("a"); + document.body.appendChild(dl); + dl.setAttribute("href", svg_data_url); + dl.setAttribute("download", "blast-radius.svg"); + dl.click(); + } + + download_btn && download_btn.addEventListener('click', handle_download); + + var clear_listeners = function () { + zin_btn && zin_btn.removeEventListener('click', handle_zin); + zout_btn && zout_btn.removeEventListener('click', handle_zout); + refocus_btn && refocus_btn.removeEventListener('click', handle_refocus); + download_btn && download_btn.removeEventListener('click', handle_download); + panzoom = null; + + // + tip && tip.hide(); + } + + var render_searchbox_node = function (d) { + return searchbox_listing(d); + } + + var select_node = function (d) { + if (d === undefined || d.length == 0) { + return true; + } + // FIXME: these falses pad out parameters I haven't looked up, + // FIXME: but don't seem to be necessary for display + if (sticky_node) { + unhighlight(sticky_node); + sticky_node = null; + } + click_count = 0; + node_mousedown(nodes[d], false, false, false, true); + } + var selectized = null; + if ($(selector + '-search.selectized').length > 0) { + $(selector + '-search').selectize()[0].selectize.clear(); + $(selector + '-search').selectize()[0].selectize.clearOptions(); + for (var i in svg_nodes) { + $(selector + '-search').selectize()[0].selectize.addOption(svg_nodes[i]); + } + if (state.params && state.params.refocus && state.params.refocus.length > 0) { + var n = state.params.refocus; + } + + // because of scoping, we need to change the onChange callback to the new version + // of select_node(), and delete the old callback associations. + $(selector + '-search').selectize()[0].selectize.settings.onChange = select_node; + // $(selector + '-search').selectize()[0].selectize.swapOnChange(); + } + else { + selectized = $(selector + '-search').selectize({ + valueField: 'label', + searchField: ['label'], + maxItems: 1, + create: false, + multiple: false, + maximumSelectionSize: 1, + onChange: select_node, + render: { + option: render_searchbox_node, + item: render_searchbox_node + }, + options: svg_nodes + }); + } + + // without this, selecting an item with <enter> will submit the form + // and force a page refresh. not the desired behavior. + $(selector + '-search-form').submit(function () { return false; }); + + } // end if(interactive) + }); // end json success callback + }); // end svg scuccess callback + +} // end blastradius() + +export default blastradius; \ No newline at end of file diff --git a/npm/src/categories.js b/npm/src/categories.js new file mode 100644 index 0000000..02f3067 --- /dev/null +++ b/npm/src/categories.js @@ -0,0 +1,2513 @@ +export const resource_groups = { + "": 10000, + "access resource": 270, + "acme_certificate": 408, + "acme_registration": 408, + "alicloud_actiontrail": 384, + "alicloud_api_gateway_api": 380, + "alicloud_api_gateway_app": 380, + "alicloud_api_gateway_app_attachment": 380, + "alicloud_api_gateway_group": 380, + "alicloud_api_gateway_vpc_access": 380, + "alicloud_cas_certificate": 385, + "alicloud_cdn_domain": 375, + "alicloud_cdn_domain_config": 375, + "alicloud_cdn_domain_new": 375, + "alicloud_cen_bandwidth_limit": 361, + "alicloud_cen_bandwidth_package": 361, + "alicloud_cen_bandwidth_package_attachment": 361, + "alicloud_cen_instance": 361, + "alicloud_cen_instance_attachment": 361, + "alicloud_cen_instance_grant": 361, + "alicloud_cen_route_entry": 361, + "alicloud_cms_alarm": 371, + "alicloud_common_bandwidth_package": 359, + "alicloud_common_bandwidth_package_attachment": 359, + "alicloud_container_cluster": 368, + "alicloud_cr_namespace": 369, + "alicloud_cr_repo": 369, + "alicloud_cs_application": 368, + "alicloud_cs_kubernetes": 368, + "alicloud_cs_managed_kubernetes": 368, + "alicloud_cs_swarm": 368, + "alicloud_datahub_project": 381, + "alicloud_datahub_subscription": 381, + "alicloud_datahub_topic": 381, + "alicloud_db_account": 362, + "alicloud_db_account_privilege": 362, + "alicloud_db_backup_policy": 362, + "alicloud_db_connection": 362, + "alicloud_db_database": 362, + "alicloud_db_instance": 362, + "alicloud_db_read_write_splitting_connection": 362, + "alicloud_db_readonly_instance": 362, + "alicloud_ddoscoo_instance": 386, + "alicloud_disk": 357, + "alicloud_disk_attachment": 357, + "alicloud_dns": 372, + "alicloud_dns_group": 372, + "alicloud_dns_record": 372, + "alicloud_drds_instance": 365, + "alicloud_eip": 357, + "alicloud_eip_association": 357, + "alicloud_elasticsearch_instance": 382, + "alicloud_ess_alarm": 366, + "alicloud_ess_attachment": 366, + "alicloud_ess_lifecycle_hook": 366, + "alicloud_ess_scaling_configuration": 366, + "alicloud_ess_scaling_group": 366, + "alicloud_ess_scaling_rule": 366, + "alicloud_ess_schedule": 366, + "alicloud_ess_scheduled_task": 366, + "alicloud_fc_function": 370, + "alicloud_fc_service": 370, + "alicloud_fc_trigger": 370, + "alicloud_forward_entry": 359, + "alicloud_instance": 357, + "alicloud_key_pair": 357, + "alicloud_key_pair_attachment": 357, + "alicloud_kms_key": 376, + "alicloud_kvstore_backup_policy": 364, + "alicloud_kvstore_instance": 364, + "alicloud_launch_template": 357, + "alicloud_log_machine_group": 373, + "alicloud_log_project": 373, + "alicloud_log_store": 373, + "alicloud_log_store_index": 373, + "alicloud_logtail_attachment": 373, + "alicloud_logtail_config": 373, + "alicloud_mns_queue": 379, + "alicloud_mns_topic": 379, + "alicloud_mns_topic_subscription": 379, + "alicloud_mongodb_instance": 363, + "alicloud_nas_access_group": 383, + "alicloud_nas_access_rule": 383, + "alicloud_nas_file_system": 383, + "alicloud_nas_mount_target": 383, + "alicloud_nat_gateway": 359, + "alicloud_network_acl": 359, + "alicloud_network_acl_attachment": 359, + "alicloud_network_acl_entries": 359, + "alicloud_network_interface": 357, + "alicloud_network_interface_attachment": 357, + "alicloud_oss_bucket": 367, + "alicloud_oss_bucket_object": 367, + "alicloud_ots_instance": 377, + "alicloud_ots_instance_attachment": 377, + "alicloud_ots_table": 377, + "alicloud_pvtz_zone": 378, + "alicloud_pvtz_zone_attachment": 378, + "alicloud_pvtz_zone_record": 378, + "alicloud_ram_access_key": 374, + "alicloud_ram_account_alias": 374, + "alicloud_ram_alias": 374, + "alicloud_ram_group": 374, + "alicloud_ram_group_membership": 374, + "alicloud_ram_group_policy_attachment": 374, + "alicloud_ram_login_profile": 374, + "alicloud_ram_policy": 374, + "alicloud_ram_role": 374, + "alicloud_ram_role_attachment": 374, + "alicloud_ram_role_policy_attachment": 374, + "alicloud_ram_user": 374, + "alicloud_ram_user_policy_attachment": 374, + "alicloud_route_entry": 359, + "alicloud_route_table": 359, + "alicloud_route_table_attachment": 359, + "alicloud_router_interface": 359, + "alicloud_router_interface_connection": 359, + "alicloud_security_group": 357, + "alicloud_security_group_rule": 357, + "alicloud_slb": 358, + "alicloud_slb_acl": 358, + "alicloud_slb_attachment": 358, + "alicloud_slb_ca_certificate": 358, + "alicloud_slb_listener": 358, + "alicloud_slb_rule": 358, + "alicloud_slb_server_certificate": 358, + "alicloud_slb_server_group": 358, + "alicloud_snapshot": 357, + "alicloud_snapshot_policy": 357, + "alicloud_snat_entry": 359, + "alicloud_ssl_vpn_cert_client": 360, + "alicloud_ssl_vpn_server": 360, + "alicloud_vpc": 359, + "alicloud_vpn_connection": 360, + "alicloud_vpn_customer_gateway": 360, + "alicloud_vpn_gateway": 360, + "alicloud_vswitch": 359, + "arukas_container": 323, + "aws_acm_certificate": 9, + "aws_acm_certificate_validation": 9, + "aws_acmpca_certificate_authority": 10, + "aws_ami": 42, + "aws_ami_copy": 42, + "aws_ami_from_instance": 42, + "aws_ami_launch_permission": 42, + "aws_api_gateway_account": 11, + "aws_api_gateway_api_key": 11, + "aws_api_gateway_authorizer": 11, + "aws_api_gateway_base_path_mapping": 11, + "aws_api_gateway_client_certificate": 11, + "aws_api_gateway_deployment": 11, + "aws_api_gateway_documentation_part": 11, + "aws_api_gateway_documentation_version": 11, + "aws_api_gateway_domain_name": 11, + "aws_api_gateway_gateway_response": 11, + "aws_api_gateway_integration": 11, + "aws_api_gateway_integration_response": 11, + "aws_api_gateway_method": 11, + "aws_api_gateway_method_response": 11, + "aws_api_gateway_method_settings": 11, + "aws_api_gateway_model": 11, + "aws_api_gateway_request_validator": 11, + "aws_api_gateway_resource": 11, + "aws_api_gateway_rest_api": 11, + "aws_api_gateway_stage": 11, + "aws_api_gateway_usage_plan": 11, + "aws_api_gateway_usage_plan_key": 11, + "aws_api_gateway_vpc_link": 11, + "aws_app_cookie_stickiness_policy": 49, + "aws_appautoscaling_policy": 12, + "aws_appautoscaling_scheduled_action": 12, + "aws_appautoscaling_target": 12, + "aws_appmesh_mesh": 13, + "aws_appmesh_route": 13, + "aws_appmesh_virtual_node": 13, + "aws_appmesh_virtual_router": 13, + "aws_appmesh_virtual_service": 13, + "aws_appsync_api_key": 14, + "aws_appsync_datasource": 14, + "aws_appsync_graphql_api": 14, + "aws_appsync_resolver": 14, + "aws_athena_database": 15, + "aws_athena_named_query": 15, + "aws_autoscaling_attachment": 16, + "aws_autoscaling_group": 16, + "aws_autoscaling_lifecycle_hook": 16, + "aws_autoscaling_notification": 16, + "aws_autoscaling_policy": 16, + "aws_autoscaling_schedule": 16, + "aws_backup_plan": 17, + "aws_backup_selection": 17, + "aws_backup_vault": 17, + "aws_batch_compute_environment": 18, + "aws_batch_job_definition": 18, + "aws_batch_job_queue": 18, + "aws_budgets_budget": 19, + "aws_cloud9_environment_ec2": 20, + "aws_cloudformation_stack": 21, + "aws_cloudformation_stack_set": 21, + "aws_cloudformation_stack_set_instance": 21, + "aws_cloudfront_distribution": 22, + "aws_cloudfront_origin_access_identity": 22, + "aws_cloudfront_public_key": 22, + "aws_cloudhsm_v2_cluster": 23, + "aws_cloudhsm_v2_hsm": 23, + "aws_cloudtrail": 24, + "aws_cloudwatch_dashboard": 25, + "aws_cloudwatch_event_permission": 25, + "aws_cloudwatch_event_rule": 25, + "aws_cloudwatch_event_target": 25, + "aws_cloudwatch_log_destination": 25, + "aws_cloudwatch_log_destination_policy": 25, + "aws_cloudwatch_log_group": 25, + "aws_cloudwatch_log_metric_filter": 25, + "aws_cloudwatch_log_resource_policy": 25, + "aws_cloudwatch_log_stream": 25, + "aws_cloudwatch_log_subscription_filter": 25, + "aws_cloudwatch_metric_alarm": 25, + "aws_codebuild_project": 26, + "aws_codebuild_webhook": 26, + "aws_codecommit_repository": 27, + "aws_codecommit_trigger": 27, + "aws_codedeploy_app": 28, + "aws_codedeploy_deployment_config": 28, + "aws_codedeploy_deployment_group": 28, + "aws_codepipeline": 29, + "aws_codepipeline_webhook": 29, + "aws_cognito_identity_pool": 30, + "aws_cognito_identity_pool_roles_attachment": 30, + "aws_cognito_identity_provider": 30, + "aws_cognito_resource_server": 30, + "aws_cognito_user_group": 30, + "aws_cognito_user_pool": 30, + "aws_cognito_user_pool_client": 30, + "aws_cognito_user_pool_domain": 30, + "aws_config_aggregate_authorization": 31, + "aws_config_config_rule": 31, + "aws_config_configuration_aggregator": 31, + "aws_config_configuration_recorder": 31, + "aws_config_configuration_recorder_status": 31, + "aws_config_delivery_channel": 31, + "aws_cur_report_definition": 32, + "aws_customer_gateway": 99, + "aws_datasync_agent": 35, + "aws_datasync_location_efs": 35, + "aws_datasync_location_nfs": 35, + "aws_datasync_location_s3": 35, + "aws_datasync_task": 35, + "aws_dax_cluster": 40, + "aws_dax_parameter_group": 40, + "aws_dax_subnet_group": 40, + "aws_db_cluster_snapshot": 78, + "aws_db_event_subscription": 78, + "aws_db_instance": 78, + "aws_db_instance_role_association": 78, + "aws_db_option_group": 78, + "aws_db_parameter_group": 78, + "aws_db_security_group": 78, + "aws_db_snapshot": 78, + "aws_db_subnet_group": 78, + "aws_default_network_acl": 99, + "aws_default_route_table": 99, + "aws_default_security_group": 99, + "aws_default_subnet": 99, + "aws_default_vpc": 99, + "aws_default_vpc_dhcp_options": 99, + "aws_devicefarm_project": 36, + "aws_directory_service_conditional_forwarder": 37, + "aws_directory_service_directory": 37, + "aws_dlm_lifecycle_policy": 33, + "aws_dms_certificate": 34, + "aws_dms_endpoint": 34, + "aws_dms_replication_instance": 34, + "aws_dms_replication_subnet_group": 34, + "aws_dms_replication_task": 34, + "aws_docdb_cluster": 41, + "aws_docdb_cluster_instance": 41, + "aws_docdb_cluster_parameter_group": 41, + "aws_docdb_cluster_snapshot": 41, + "aws_docdb_subnet_group": 41, + "aws_dx_bgp_peer": 38, + "aws_dx_connection": 38, + "aws_dx_connection_association": 38, + "aws_dx_gateway": 38, + "aws_dx_gateway_association": 38, + "aws_dx_gateway_association_proposal": 38, + "aws_dx_hosted_private_virtual_interface": 38, + "aws_dx_hosted_private_virtual_interface_accepter": 38, + "aws_dx_hosted_public_virtual_interface": 38, + "aws_dx_hosted_public_virtual_interface_accepter": 38, + "aws_dx_lag": 38, + "aws_dx_private_virtual_interface": 38, + "aws_dx_public_virtual_interface": 38, + "aws_dynamodb_global_table": 39, + "aws_dynamodb_table": 39, + "aws_dynamodb_table_item": 39, + "aws_ebs_snapshot": 42, + "aws_ebs_snapshot_copy": 42, + "aws_ebs_volume": 42, + "aws_ec2_capacity_reservation": 42, + "aws_ec2_client_vpn_endpoint": 42, + "aws_ec2_client_vpn_network_association": 42, + "aws_ec2_fleet": 42, + "aws_ec2_transit_gateway": 42, + "aws_ec2_transit_gateway_route": 42, + "aws_ec2_transit_gateway_route_table": 42, + "aws_ec2_transit_gateway_route_table_association": 42, + "aws_ec2_transit_gateway_route_table_propagation": 42, + "aws_ec2_transit_gateway_vpc_attachment": 42, + "aws_ec2_transit_gateway_vpc_attachment_accepter": 42, + "aws_ecr_lifecycle_policy": 43, + "aws_ecr_repository": 43, + "aws_ecr_repository_policy": 43, + "aws_ecs_cluster": 44, + "aws_ecs_service": 44, + "aws_ecs_task_definition": 44, + "aws_efs_file_system": 45, + "aws_efs_mount_target": 45, + "aws_egress_only_internet_gateway": 99, + "aws_eip": 42, + "aws_eip_association": 42, + "aws_eks_cluster": 46, + "aws_elastic_beanstalk_application": 48, + "aws_elastic_beanstalk_application_version": 48, + "aws_elastic_beanstalk_configuration_template": 48, + "aws_elastic_beanstalk_environment": 48, + "aws_elasticache_cluster": 47, + "aws_elasticache_parameter_group": 47, + "aws_elasticache_replication_group": 47, + "aws_elasticache_security_group": 47, + "aws_elasticache_subnet_group": 47, + "aws_elasticsearch_domain": 52, + "aws_elasticsearch_domain_policy": 52, + "aws_elastictranscoder_pipeline": 53, + "aws_elastictranscoder_preset": 53, + "aws_elb": 49, + "aws_elb_attachment": 49, + "aws_emr_cluster": 51, + "aws_emr_instance_group": 51, + "aws_emr_security_configuration": 51, + "aws_flow_log": 99, + "aws_gamelift_alias": 54, + "aws_gamelift_build": 54, + "aws_gamelift_fleet": 54, + "aws_gamelift_game_session_queue": 54, + "aws_glacier_vault": 55, + "aws_glacier_vault_lock": 55, + "aws_globalaccelerator_accelerator": 56, + "aws_globalaccelerator_listener": 7, + "aws_glue_catalog_database": 57, + "aws_glue_catalog_table": 57, + "aws_glue_classifier": 57, + "aws_glue_connection": 57, + "aws_glue_crawler": 57, + "aws_glue_job": 57, + "aws_glue_security_configuration": 57, + "aws_glue_trigger": 57, + "aws_guardduty_detector": 58, + "aws_guardduty_invite_accepter": 58, + "aws_guardduty_ipset": 58, + "aws_guardduty_member": 58, + "aws_guardduty_threatintelset": 58, + "aws_iam_access_key": 59, + "aws_iam_account_alias": 59, + "aws_iam_account_password_policy": 59, + "aws_iam_group": 59, + "aws_iam_group_membership": 59, + "aws_iam_group_policy": 59, + "aws_iam_group_policy_attachment": 59, + "aws_iam_instance_profile": 59, + "aws_iam_openid_connect_provider": 59, + "aws_iam_policy": 59, + "aws_iam_policy_attachment": 59, + "aws_iam_role": 59, + "aws_iam_role_policy": 59, + "aws_iam_role_policy_attachment": 59, + "aws_iam_saml_provider": 59, + "aws_iam_server_certificate": 59, + "aws_iam_service_linked_role": 59, + "aws_iam_user": 59, + "aws_iam_user_group_membership": 59, + "aws_iam_user_login_profile": 59, + "aws_iam_user_policy": 59, + "aws_iam_user_policy_attachment": 59, + "aws_iam_user_ssh_key": 59, + "aws_inspector_assessment_target": 61, + "aws_inspector_assessment_template": 61, + "aws_inspector_resource_group": 61, + "aws_instance": 42, + "aws_internet_gateway": 99, + "aws_iot_certificate": 60, + "aws_iot_policy": 60, + "aws_iot_policy_attachment": 60, + "aws_iot_role_alias": 60, + "aws_iot_thing": 60, + "aws_iot_thing_principal_attachment": 60, + "aws_iot_thing_type": 60, + "aws_iot_topic_rule": 60, + "aws_key_pair": 42, + "aws_kinesis_analytics_application": 62, + "aws_kinesis_firehose_delivery_stream": 63, + "aws_kinesis_stream": 62, + "aws_kms_alias": 64, + "aws_kms_ciphertext": 64, + "aws_kms_external_key": 64, + "aws_kms_grant": 64, + "aws_kms_key": 64, + "aws_lambda_alias": 65, + "aws_lambda_event_source_mapping": 65, + "aws_lambda_function": 65, + "aws_lambda_layer_version": 65, + "aws_lambda_permission": 65, + "aws_launch_configuration": 42, + "aws_launch_template": 42, + "aws_lb": 50, + "aws_lb_cookie_stickiness_policy": 49, + "aws_lb_listener": 50, + "aws_lb_listener_certificate": 50, + "aws_lb_listener_rule": 50, + "aws_lb_ssl_negotiation_policy": 49, + "aws_lb_target_group": 50, + "aws_lb_target_group_attachment": 50, + "aws_licensemanager_association": 66, + "aws_licensemanager_license_configuration": 66, + "aws_lightsail_domain": 67, + "aws_lightsail_instance": 67, + "aws_lightsail_key_pair": 67, + "aws_lightsail_static_ip": 67, + "aws_lightsail_static_ip_attachment": 67, + "aws_load_balancer_backend_server_policy": 49, + "aws_load_balancer_listener_policy": 49, + "aws_load_balancer_policy": 49, + "aws_macie_member_account_association": 68, + "aws_macie_s3_bucket_association": 68, + "aws_main_route_table_association": 99, + "aws_media_package_channel": 70, + "aws_media_store_container": 71, + "aws_media_store_container_policy": 71, + "aws_mq_broker": 69, + "aws_mq_configuration": 69, + "aws_msk_cluster": 72, + "aws_msk_configuration": 72, + "aws_nat_gateway": 99, + "aws_neptune_cluster": 73, + "aws_neptune_cluster_instance": 73, + "aws_neptune_cluster_parameter_group": 73, + "aws_neptune_cluster_snapshot": 73, + "aws_neptune_event_subscription": 73, + "aws_neptune_parameter_group": 73, + "aws_neptune_subnet_group": 73, + "aws_network_acl": 99, + "aws_network_acl_rule": 99, + "aws_network_interface": 99, + "aws_network_interface_attachment": 99, + "aws_network_interface_sg_attachment": 99, + "aws_opsworks_application": 74, + "aws_opsworks_custom_layer": 74, + "aws_opsworks_ganglia_layer": 74, + "aws_opsworks_haproxy_layer": 74, + "aws_opsworks_instance": 74, + "aws_opsworks_java_app_layer": 74, + "aws_opsworks_memcached_layer": 74, + "aws_opsworks_mysql_layer": 74, + "aws_opsworks_nodejs_app_layer": 74, + "aws_opsworks_permission": 74, + "aws_opsworks_php_app_layer": 74, + "aws_opsworks_rails_app_layer": 74, + "aws_opsworks_rds_db_instance": 74, + "aws_opsworks_stack": 74, + "aws_opsworks_static_web_layer": 74, + "aws_opsworks_user_profile": 74, + "aws_organizations_account": 75, + "aws_organizations_organization": 75, + "aws_organizations_organizational_unit": 75, + "aws_organizations_policy": 75, + "aws_organizations_policy_attachment": 75, + "aws_pinpoint_adm_channel": 76, + "aws_pinpoint_apns_channel": 76, + "aws_pinpoint_apns_sandbox_channel": 76, + "aws_pinpoint_apns_voip_channel": 76, + "aws_pinpoint_apns_voip_sandbox_channel": 76, + "aws_pinpoint_app": 76, + "aws_pinpoint_baidu_channel": 76, + "aws_pinpoint_email_channel": 76, + "aws_pinpoint_event_stream": 76, + "aws_pinpoint_gcm_channel": 76, + "aws_pinpoint_sms_channel": 76, + "aws_placement_group": 42, + "aws_proxy_protocol_policy": 49, + "aws_ram_principal_association": 77, + "aws_ram_resource_association": 77, + "aws_ram_resource_share": 77, + "aws_rds_cluster": 78, + "aws_rds_cluster_endpoint": 78, + "aws_rds_cluster_instance": 78, + "aws_rds_cluster_parameter_group": 78, + "aws_rds_global_cluster": 78, + "aws_redshift_cluster": 79, + "aws_redshift_event_subscription": 79, + "aws_redshift_parameter_group": 79, + "aws_redshift_security_group": 79, + "aws_redshift_snapshot_copy_grant": 79, + "aws_redshift_subnet_group": 79, + "aws_resourcegroups_group": 80, + "aws_route": 99, + "aws_route53_delegation_set": 81, + "aws_route53_health_check": 81, + "aws_route53_query_log": 81, + "aws_route53_record": 81, + "aws_route53_resolver_endpoint": 82, + "aws_route53_resolver_rule": 82, + "aws_route53_resolver_rule_association": 82, + "aws_route53_zone": 81, + "aws_route53_zone_association": 81, + "aws_route_table": 99, + "aws_route_table_association": 99, + "aws_s3_account_public_access_block": 83, + "aws_s3_bucket": 83, + "aws_s3_bucket_inventory": 83, + "aws_s3_bucket_metric": 83, + "aws_s3_bucket_notification": 83, + "aws_s3_bucket_object": 83, + "aws_s3_bucket_policy": 83, + "aws_s3_bucket_public_access_block": 83, + "aws_sagemaker_endpoint": 84, + "aws_sagemaker_endpoint_configuration": 84, + "aws_sagemaker_model": 84, + "aws_sagemaker_notebook_instance": 84, + "aws_sagemaker_notebook_instance_lifecycle_configuration": 84, + "aws_secretsmanager_secret": 85, + "aws_secretsmanager_secret_version": 85, + "aws_security_group": 99, + "aws_security_group_rule": 99, + "aws_securityhub_account": 86, + "aws_securityhub_product_subscription": 86, + "aws_securityhub_standards_subscription": 86, + "aws_service_discovery_http_namespace": 89, + "aws_service_discovery_private_dns_namespace": 89, + "aws_service_discovery_public_dns_namespace": 89, + "aws_service_discovery_service": 89, + "aws_servicecatalog_portfolio": 88, + "aws_ses_active_receipt_rule_set": 87, + "aws_ses_configuration_set": 87, + "aws_ses_domain_dkim": 87, + "aws_ses_domain_identity": 87, + "aws_ses_domain_identity_verification": 87, + "aws_ses_domain_mail_from": 87, + "aws_ses_email_identity": 87, + "aws_ses_event_destination": 87, + "aws_ses_identity_notification_topic": 87, + "aws_ses_receipt_filter": 87, + "aws_ses_receipt_rule": 87, + "aws_ses_receipt_rule_set": 87, + "aws_ses_template": 87, + "aws_sfn_activity": 95, + "aws_sfn_state_machine": 95, + "aws_shield_protection": 90, + "aws_simpledb_domain": 91, + "aws_snapshot_create_volume_permission": 42, + "aws_sns_platform_application": 92, + "aws_sns_sms_preferences": 92, + "aws_sns_topic": 92, + "aws_sns_topic_policy": 92, + "aws_sns_topic_subscription": 92, + "aws_spot_datafeed_subscription": 42, + "aws_spot_fleet_request": 42, + "aws_spot_instance_request": 42, + "aws_sqs_queue": 93, + "aws_sqs_queue_policy": 93, + "aws_ssm_activation": 94, + "aws_ssm_association": 94, + "aws_ssm_document": 94, + "aws_ssm_maintenance_window": 94, + "aws_ssm_maintenance_window_target": 94, + "aws_ssm_maintenance_window_task": 94, + "aws_ssm_parameter": 94, + "aws_ssm_patch_baseline": 94, + "aws_ssm_patch_group": 94, + "aws_ssm_resource_data_sync": 94, + "aws_storagegateway_cache": 96, + "aws_storagegateway_cached_iscsi_volume": 96, + "aws_storagegateway_gateway": 96, + "aws_storagegateway_nfs_file_share": 96, + "aws_storagegateway_smb_file_share": 96, + "aws_storagegateway_upload_buffer": 96, + "aws_storagegateway_working_storage": 96, + "aws_subnet": 99, + "aws_swf_domain": 97, + "aws_transfer_server": 98, + "aws_transfer_ssh_key": 98, + "aws_transfer_user": 98, + "aws_volume_attachment": 42, + "aws_vpc": 99, + "aws_vpc_dhcp_options": 99, + "aws_vpc_dhcp_options_association": 99, + "aws_vpc_endpoint": 99, + "aws_vpc_endpoint_connection_notification": 99, + "aws_vpc_endpoint_route_table_association": 99, + "aws_vpc_endpoint_service": 99, + "aws_vpc_endpoint_service_allowed_principal": 99, + "aws_vpc_endpoint_subnet_association": 99, + "aws_vpc_ipv4_cidr_block_association": 99, + "aws_vpc_peering_connection": 99, + "aws_vpc_peering_connection_accepter": 99, + "aws_vpc_peering_connection_options": 99, + "aws_vpn_connection": 99, + "aws_vpn_connection_route": 99, + "aws_vpn_gateway": 99, + "aws_vpn_gateway_attachment": 99, + "aws_vpn_gateway_route_propagation": 99, + "aws_waf_byte_match_set": 100, + "aws_waf_geo_match_set": 100, + "aws_waf_ipset": 100, + "aws_waf_rate_based_rule": 100, + "aws_waf_regex_match_set": 100, + "aws_waf_regex_pattern_set": 100, + "aws_waf_rule": 100, + "aws_waf_rule_group": 100, + "aws_waf_size_constraint_set": 100, + "aws_waf_sql_injection_match_set": 100, + "aws_waf_web_acl": 100, + "aws_waf_xss_match_set": 100, + "aws_wafregional_byte_match_set": 101, + "aws_wafregional_geo_match_set": 101, + "aws_wafregional_ipset": 101, + "aws_wafregional_rate_based_rule": 101, + "aws_wafregional_regex_match_set": 101, + "aws_wafregional_regex_pattern_set": 101, + "aws_wafregional_rule": 101, + "aws_wafregional_rule_group": 101, + "aws_wafregional_size_constraint_set": 101, + "aws_wafregional_sql_injection_match_set": 101, + "aws_wafregional_web_acl": 101, + "aws_wafregional_web_acl_association": 101, + "aws_wafregional_xss_match_set": 101, + "aws_worklink_fleet": 102, + "aws_worklink_website_certificate_authority_association": 102, + "aws_xray_sampling_rule": 103, + "azuread_application": 153, + "azuread_group": 153, + "azuread_service_principal": 153, + "azuread_service_principal_password": 153, + "azuread_user": 153, + "azurerm_api_management": 195, + "azurerm_api_management_api": 195, + "azurerm_api_management_api_operation": 195, + "azurerm_api_management_api_operation_policy": 195, + "azurerm_api_management_api_policy": 195, + "azurerm_api_management_api_schema": 195, + "azurerm_api_management_authorization_server": 195, + "azurerm_api_management_certificate": 195, + "azurerm_api_management_group": 195, + "azurerm_api_management_group_user": 195, + "azurerm_api_management_logger": 195, + "azurerm_api_management_openid_connect_provider": 195, + "azurerm_api_management_product": 195, + "azurerm_api_management_product_api": 195, + "azurerm_api_management_product_group": 195, + "azurerm_api_management_product_policy": 195, + "azurerm_api_management_property": 195, + "azurerm_api_management_user": 195, + "azurerm_api_management_version_set": 195, + "azurerm_app_service": 196, + "azurerm_app_service_active_slot": 196, + "azurerm_app_service_custom_hostname_binding": 196, + "azurerm_app_service_plan": 196, + "azurerm_app_service_slot": 196, + "azurerm_application_gateway": 221, + "azurerm_application_insights": 200, + "azurerm_application_insights_api_key": 200, + "azurerm_application_insights_webtests": 200, + "azurerm_application_security_group": 221, + "azurerm_automation_account": 199, + "azurerm_automation_credential": 199, + "azurerm_automation_dsc_configuration": 199, + "azurerm_automation_dsc_nodeconfiguration": 199, + "azurerm_automation_module": 199, + "azurerm_automation_runbook": 199, + "azurerm_automation_schedule": 199, + "azurerm_automation_variable_bool": 199, + "azurerm_automation_variable_datetime": 199, + "azurerm_automation_variable_string": 199, + "azurerm_autoscale_setting": 220, + "azurerm_availability_set": 203, + "azurerm_azuread_application": 198, + "azurerm_azuread_service_principal": 198, + "azurerm_azuread_service_principal_password": 198, + "azurerm_batch_account": 201, + "azurerm_batch_certificate": 201, + "azurerm_batch_pool": 201, + "azurerm_cdn_endpoint": 202, + "azurerm_cdn_profile": 202, + "azurerm_cognitive_account": 205, + "azurerm_connection_monitor": 221, + "azurerm_container_group": 204, + "azurerm_container_registry": 204, + "azurerm_container_service": 204, + "azurerm_cosmosdb_account": 206, + "azurerm_cosmosdb_cassandra_keyspace": 206, + "azurerm_cosmosdb_mongo_collection": 206, + "azurerm_cosmosdb_mongo_database": 206, + "azurerm_cosmosdb_sql_database": 206, + "azurerm_cosmosdb_table": 206, + "azurerm_data_factory": 209, + "azurerm_data_factory_dataset_mysql": 209, + "azurerm_data_factory_dataset_postgresql": 209, + "azurerm_data_factory_dataset_sql_server_table": 209, + "azurerm_data_factory_linked_service_data_lake_storage_gen2": 209, + "azurerm_data_factory_linked_service_mysql": 209, + "azurerm_data_factory_linked_service_postgresql": 209, + "azurerm_data_factory_linked_service_sql_server": 209, + "azurerm_data_factory_pipeline": 209, + "azurerm_data_lake_analytics_account": 210, + "azurerm_data_lake_analytics_firewall_rule": 210, + "azurerm_data_lake_store": 210, + "azurerm_data_lake_store_firewall_rule": 210, + "azurerm_databricks_workspace": 208, + "azurerm_ddos_protection_plan": 221, + "azurerm_dev_test_lab": 212, + "azurerm_dev_test_linux_virtual_machine": 212, + "azurerm_dev_test_policy": 212, + "azurerm_dev_test_virtual_network": 212, + "azurerm_dev_test_windows_virtual_machine": 212, + "azurerm_devspace_controller": 211, + "azurerm_dns_a_record": 213, + "azurerm_dns_aaaa_record": 213, + "azurerm_dns_caa_record": 213, + "azurerm_dns_cname_record": 213, + "azurerm_dns_mx_record": 213, + "azurerm_dns_ns_record": 213, + "azurerm_dns_ptr_record": 213, + "azurerm_dns_srv_record": 213, + "azurerm_dns_txt_record": 213, + "azurerm_dns_zone": 213, + "azurerm_eventgrid_domain": 219, + "azurerm_eventgrid_event_subscription": 219, + "azurerm_eventgrid_topic": 219, + "azurerm_eventhub": 219, + "azurerm_eventhub_authorization_rule": 219, + "azurerm_eventhub_consumer_group": 219, + "azurerm_eventhub_namespace": 219, + "azurerm_eventhub_namespace_authorization_rule": 219, + "azurerm_express_route_circuit": 221, + "azurerm_express_route_circuit_authorization": 221, + "azurerm_express_route_circuit_peering": 221, + "azurerm_firewall": 221, + "azurerm_firewall_application_rule_collection": 221, + "azurerm_firewall_nat_rule_collection": 221, + "azurerm_firewall_network_rule_collection": 221, + "azurerm_function_app": 196, + "azurerm_hdinsight_hadoop_cluster": 214, + "azurerm_hdinsight_hbase_cluster": 214, + "azurerm_hdinsight_interactive_query_cluster": 214, + "azurerm_hdinsight_kafka_cluster": 214, + "azurerm_hdinsight_ml_services_cluster": 214, + "azurerm_hdinsight_rserver_cluster": 214, + "azurerm_hdinsight_spark_cluster": 214, + "azurerm_hdinsight_storm_cluster": 214, + "azurerm_image": 203, + "azurerm_iothub": 219, + "azurerm_iothub_consumer_group": 219, + "azurerm_iothub_shared_access_policy": 219, + "azurerm_key_vault": 215, + "azurerm_key_vault_access_policy": 215, + "azurerm_key_vault_certificate": 215, + "azurerm_key_vault_key": 215, + "azurerm_key_vault_secret": 215, + "azurerm_kubernetes_cluster": 204, + "azurerm_lb": 216, + "azurerm_lb_backend_address_pool": 216, + "azurerm_lb_nat_pool": 216, + "azurerm_lb_nat_rule": 216, + "azurerm_lb_outbound_rule": 216, + "azurerm_lb_probe": 216, + "azurerm_lb_rule": 216, + "azurerm_local_network_gateway": 221, + "azurerm_log_analytics_linked_service": 223, + "azurerm_log_analytics_solution": 223, + "azurerm_log_analytics_workspace": 223, + "azurerm_log_analytics_workspace_linked_service": 223, + "azurerm_logic_app_action_custom": 217, + "azurerm_logic_app_action_http": 217, + "azurerm_logic_app_trigger_custom": 217, + "azurerm_logic_app_trigger_http_request": 217, + "azurerm_logic_app_trigger_recurrence": 217, + "azurerm_logic_app_workflow": 217, + "azurerm_managed_disk": 203, + "azurerm_management_group": 222, + "azurerm_management_lock": 218, + "azurerm_mariadb_database": 207, + "azurerm_mariadb_server": 207, + "azurerm_media_services_account": 234, + "azurerm_metric_alertrule": 220, + "azurerm_monitor_action_group": 220, + "azurerm_monitor_activity_log_alert": 220, + "azurerm_monitor_autoscale_setting": 220, + "azurerm_monitor_diagnostic_setting": 220, + "azurerm_monitor_log_profile": 220, + "azurerm_monitor_metric_alert": 220, + "azurerm_monitor_metric_alertrule": 220, + "azurerm_mssql_elasticpool": 207, + "azurerm_mysql_configuration": 207, + "azurerm_mysql_database": 207, + "azurerm_mysql_firewall_rule": 207, + "azurerm_mysql_server": 207, + "azurerm_mysql_virtual_network_rule": 207, + "azurerm_network_connection_monitor": 221, + "azurerm_network_ddos_protection_plan": 221, + "azurerm_network_interface": 221, + "azurerm_network_interface_application_gateway_backend_address_pool_association": 221, + "azurerm_network_interface_application_security_group_association": 221, + "azurerm_network_interface_backend_address_pool_association": 221, + "azurerm_network_interface_nat_rule_association": 221, + "azurerm_network_packet_capture": 221, + "azurerm_network_profile": 221, + "azurerm_network_security_group": 221, + "azurerm_network_security_rule": 221, + "azurerm_network_watcher": 221, + "azurerm_notification_hub": 219, + "azurerm_notification_hub_authorization_rule": 219, + "azurerm_notification_hub_namespace": 219, + "azurerm_packet_capture": 221, + "azurerm_policy_assignment": 224, + "azurerm_policy_definition": 224, + "azurerm_policy_set_definition": 224, + "azurerm_postgresql_configuration": 207, + "azurerm_postgresql_database": 207, + "azurerm_postgresql_firewall_rule": 207, + "azurerm_postgresql_server": 207, + "azurerm_postgresql_virtual_network_rule": 207, + "azurerm_public_ip": 221, + "azurerm_public_ip_prefix": 221, + "azurerm_recovery_services_protected_vm": 225, + "azurerm_recovery_services_protection_policy_vm": 225, + "azurerm_recovery_services_vault": 225, + "azurerm_redis_cache": 226, + "azurerm_redis_firewall_rule": 226, + "azurerm_relay_namespace": 219, + "azurerm_resource_group": 194, + "azurerm_role_assignment": 197, + "azurerm_role_definition": 197, + "azurerm_route": 221, + "azurerm_route_table": 221, + "azurerm_scheduler_job": 229, + "azurerm_scheduler_job_collection": 229, + "azurerm_search_service": 227, + "azurerm_security_center_contact": 228, + "azurerm_security_center_subscription_pricing": 228, + "azurerm_security_center_workspace": 228, + "azurerm_service_fabric_cluster": 230, + "azurerm_servicebus_namespace": 219, + "azurerm_servicebus_namespace_authorization_rule": 219, + "azurerm_servicebus_queue": 219, + "azurerm_servicebus_queue_authorization_rule": 219, + "azurerm_servicebus_subscription": 219, + "azurerm_servicebus_subscription_rule": 219, + "azurerm_servicebus_topic": 219, + "azurerm_servicebus_topic_authorization_rule": 219, + "azurerm_shared_image": 203, + "azurerm_shared_image_gallery": 203, + "azurerm_shared_image_version": 203, + "azurerm_signalr_service": 219, + "azurerm_snapshot": 203, + "azurerm_sql_active_directory_administrator": 207, + "azurerm_sql_database": 207, + "azurerm_sql_elasticpool": 207, + "azurerm_sql_firewall_rule": 207, + "azurerm_sql_server": 207, + "azurerm_sql_virtual_network_rule": 207, + "azurerm_storage_account": 232, + "azurerm_storage_blob": 232, + "azurerm_storage_container": 232, + "azurerm_storage_queue": 232, + "azurerm_storage_share": 232, + "azurerm_storage_table": 232, + "azurerm_stream_analytics_function_javascript_udf": 231, + "azurerm_stream_analytics_job": 231, + "azurerm_stream_analytics_output_blob": 231, + "azurerm_stream_analytics_output_eventhub": 231, + "azurerm_stream_analytics_output_servicebus_queue": 231, + "azurerm_stream_analytics_stream_input_blob": 231, + "azurerm_stream_analytics_stream_input_eventhub": 231, + "azurerm_stream_analytics_stream_input_iothub": 231, + "azurerm_subnet": 221, + "azurerm_subnet_network_security_group_association": 221, + "azurerm_subnet_route_table_association": 221, + "azurerm_template_deployment": 233, + "azurerm_traffic_manager_endpoint": 221, + "azurerm_traffic_manager_profile": 221, + "azurerm_user_assigned_identity": 197, + "azurerm_virtual_machine": 203, + "azurerm_virtual_machine_data_disk_attachment": 203, + "azurerm_virtual_machine_extension": 203, + "azurerm_virtual_machine_scale_set": 203, + "azurerm_virtual_network": 221, + "azurerm_virtual_network_gateway": 221, + "azurerm_virtual_network_gateway_connection": 221, + "azurerm_virtual_network_peering": 221, + "azurestack_availability_set": 143, + "azurestack_dns_a_record": 144, + "azurestack_dns_zone": 144, + "azurestack_lb": 147, + "azurestack_lb_backend_address_pool": 147, + "azurestack_lb_nat_pool": 147, + "azurestack_lb_nat_rule": 147, + "azurestack_lb_probe": 147, + "azurestack_lb_rule": 147, + "azurestack_local_network_gateway": 145, + "azurestack_network_interface": 145, + "azurestack_network_security_group": 145, + "azurestack_network_security_rule": 145, + "azurestack_public_ip": 145, + "azurestack_resource_group": 142, + "azurestack_route": 145, + "azurestack_route_table": 145, + "azurestack_storage_account": 146, + "azurestack_storage_blob": 146, + "azurestack_storage_container": 146, + "azurestack_subnet": 145, + "azurestack_template_deployment": 148, + "azurestack_virtual_machine": 143, + "azurestack_virtual_machine_extension": 143, + "azurestack_virtual_machine_scale_set": 143, + "azurestack_virtual_network": 145, + "azurestack_virtual_network_gateway": 145, + "azurestack_virtual_network_gateway_connection": 145, + "bigip_cm_device": 434, + "bigip_cm_devicegroup": 434, + "bigip_ltm_datagroup": 434, + "bigip_ltm_dns": 434, + "bigip_ltm_irule": 434, + "bigip_ltm_monitor": 434, + "bigip_ltm_node": 434, + "bigip_ltm_persistence_profile_cookie": 434, + "bigip_ltm_persistence_profile_dstaddr": 434, + "bigip_ltm_persistence_profile_srcaddr": 434, + "bigip_ltm_persistence_profile_ssl": 434, + "bigip_ltm_policy": 434, + "bigip_ltm_pool": 434, + "bigip_ltm_pool_attachment": 434, + "bigip_ltm_profile_fasthttp": 434, + "bigip_ltm_profile_fastl4": 434, + "bigip_ltm_profile_http": 434, + "bigip_ltm_profile_http2": 434, + "bigip_ltm_profile_httpcompress": 434, + "bigip_ltm_profile_oneconnect": 434, + "bigip_ltm_profile_tcp": 434, + "bigip_ltm_snat": 434, + "bigip_ltm_snatpool": 434, + "bigip_ltm_virtual_address": 434, + "bigip_ltm_virtual_server": 434, + "bigip_net_route": 434, + "bigip_net_selfip": 434, + "bigip_net_vlan": 434, + "bigip_sys_iapp": 434, + "bigip_sys_ntp": 434, + "bigip_sys_provision": 434, + "bigip_sys_snmp": 434, + "bigip_sys_snmp_traps": 434, + "bitbucket_default_reviewers": 189, + "bitbucket_hook": 189, + "bitbucket_repository": 189, + "brightbox_cloudip": 459, + "brightbox_database_server": 459, + "brightbox_firewall_policy": 459, + "brightbox_firewall_rule": 459, + "brightbox_load_balancer": 459, + "brightbox_orbit_container": 459, + "brightbox_server": 459, + "brightbox_server_group": 459, + "chef_data_bag": 457, + "chef_data_bag_item": 457, + "chef_environment": 457, + "chef_node": 457, + "chef_role": 457, + "circonus_check": 272, + "circonus_contact_group": 272, + "circonus_graph": 272, + "circonus_metric": 272, + "circonus_metric_cluster": 272, + "circonus_rule_set": 272, + "circonus_worksheet": 272, + "ciscoasa_access_in_rules": 458, + "ciscoasa_access_out_rules": 458, + "ciscoasa_acl": 458, + "ciscoasa_network_object": 458, + "ciscoasa_network_object_group": 458, + "ciscoasa_network_service_group": 458, + "ciscoasa_static_route": 458, + "clc_group": 292, + "clc_load_balancer": 292, + "clc_load_balancer_pool": 292, + "clc_public_ip": 292, + "clc_server": 292, + "cloudflare_access_application": 400, + "cloudflare_access_policy": 400, + "cloudflare_access_rule": 400, + "cloudflare_account_member": 400, + "cloudflare_argo": 400, + "cloudflare_custom_pages": 400, + "cloudflare_filter": 400, + "cloudflare_firewall_rule": 400, + "cloudflare_load_balancer": 400, + "cloudflare_load_balancer_monitor": 400, + "cloudflare_load_balancer_pool": 400, + "cloudflare_logpush_job": 400, + "cloudflare_page_rule": 400, + "cloudflare_rate_limit": 400, + "cloudflare_record": 400, + "cloudflare_spectrum_application": 400, + "cloudflare_waf_rule": 400, + "cloudflare_worker_route": 400, + "cloudflare_worker_script": 400, + "cloudflare_zone": 400, + "cloudflare_zone_lockdown": 400, + "cloudflare_zone_settings_override": 400, + "cloudscale_floating_ip": 154, + "cloudscale_server": 154, + "cloudscale_volume": 154, + "cloudstack_affinity_group": 295, + "cloudstack_disk": 295, + "cloudstack_egress_firewall": 295, + "cloudstack_firewall": 295, + "cloudstack_instance": 295, + "cloudstack_ipaddress": 295, + "cloudstack_loadbalancer_rule": 295, + "cloudstack_network": 295, + "cloudstack_network_acl": 295, + "cloudstack_network_acl_rule": 295, + "cloudstack_nic": 295, + "cloudstack_port_forward": 295, + "cloudstack_private_gateway": 295, + "cloudstack_secondary_ipaddress": 295, + "cloudstack_security_group": 295, + "cloudstack_security_group_rule": 295, + "cloudstack_ssh_keypair": 295, + "cloudstack_static_nat": 295, + "cloudstack_static_route": 295, + "cloudstack_template": 295, + "cloudstack_vpc": 295, + "cloudstack_vpn_connection": 295, + "cloudstack_vpn_customer_gateway": 295, + "cloudstack_vpn_gateway": 295, + "cobbler_distro": 407, + "cobbler_kickstart_file": 407, + "cobbler_profile": 407, + "cobbler_repo": 407, + "cobbler_snippet": 407, + "cobbler_system": 407, + "consul_acl_policy": 190, + "consul_acl_token": 190, + "consul_agent_service": 190, + "consul_autopilot_config": 190, + "consul_catalog_entry": 190, + "consul_intention": 190, + "consul_key_prefix": 190, + "consul_keys": 190, + "consul_node": 190, + "consul_prepared_query": 190, + "consul_service": 190, + "datadog_downtime": 293, + "datadog_integration_aws": 293, + "datadog_integration_gcp": 293, + "datadog_metric_metadata": 293, + "datadog_monitor": 293, + "datadog_screenboard": 293, + "datadog_synthetics": 293, + "datadog_timeboard": 293, + "datadog_user": 293, + "digitalocean_cdn": 402, + "digitalocean_certificate": 402, + "digitalocean_database_cluster": 402, + "digitalocean_domain": 402, + "digitalocean_droplet": 402, + "digitalocean_droplet_snapshot": 402, + "digitalocean_firewall": 402, + "digitalocean_floating_ip": 402, + "digitalocean_floating_ip_assignment": 402, + "digitalocean_kubernetes_cluster": 402, + "digitalocean_kubernetes_node_pool": 402, + "digitalocean_loadbalancer": 402, + "digitalocean_project": 402, + "digitalocean_record": 402, + "digitalocean_spaces_bucket": 402, + "digitalocean_ssh_key": 402, + "digitalocean_tag": 402, + "digitalocean_volume": 402, + "digitalocean_volume_attachment": 402, + "digitalocean_volume_snapshot": 402, + "dme_record": 416, + "dns_a_record_set": 435, + "dns_aaaa_record_set": 435, + "dns_cname_record": 435, + "dns_mx_record_set": 435, + "dns_ns_record_set": 435, + "dns_ptr_record": 435, + "dns_txt_record_set": 435, + "dnsimple_record": 433, + "docker_config": 2, + "docker_container": 1, + "docker_image": 1, + "docker_network": 1, + "docker_secret": 2, + "docker_service": 2, + "docker_volume": 1, + "dyn_record": 418, + "elastigroup_aws": 419, + "elastigroup_aws_beanstalk": 419, + "elastigroup_azure": 419, + "elastigroup_gcp": 419, + "elastigroup_gke": 419, + "fastly_service_v1": 431, + "file": 467, + "flexibleengine-vbs-backup-policy-v2": 348, + "flexibleengine-vbs-backup-v2": 348, + "flexibleengine_antiddos_v1": 352, + "flexibleengine_as_configuration_v1": 326, + "flexibleengine_as_group_v1": 326, + "flexibleengine_as_policy_v1": 326, + "flexibleengine_blockstorage_volume_v2": 327, + "flexibleengine_cce_cluster_v3": 329, + "flexibleengine_cce_nodes_v3": 329, + "flexibleengine_ces-alarmrule": 347, + "flexibleengine_compute_floatingip_associate_v2": 328, + "flexibleengine_compute_floatingip_v2": 328, + "flexibleengine_compute_instance_v2": 328, + "flexibleengine_compute_interface_attach_v2": 328, + "flexibleengine_compute_keypair_v2": 328, + "flexibleengine_compute_server_v2": 328, + "flexibleengine_compute_servergroup_v2": 328, + "flexibleengine_compute_volume_attach_v2": 328, + "flexibleengine_csbs_backup_policy_v1": 350, + "flexibleengine_csbs_backup_v1": 350, + "flexibleengine_cts_tracker_v1": 351, + "flexibleengine_dcs_instance_v1": 353, + "flexibleengine_dns_recordset_v2": 330, + "flexibleengine_dns_zone_v2": 330, + "flexibleengine_drs_replication_v2": 344, + "flexibleengine_drs_replicationconsistencygroup_v2": 344, + "flexibleengine_dws_cluster_v1": 349, + "flexibleengine_elb_backend": 339, + "flexibleengine_elb_health": 339, + "flexibleengine_elb_listener": 339, + "flexibleengine_elb_loadbalancer": 339, + "flexibleengine_fw_firewall_group_v2": 331, + "flexibleengine_fw_policy_v2": 331, + "flexibleengine_fw_rule_v2": 331, + "flexibleengine_images_image_v2": 332, + "flexibleengine_kms_key_v1": 333, + "flexibleengine_lb_certificate_v2": 334, + "flexibleengine_lb_l7policy_v2": 334, + "flexibleengine_lb_l7rule_v2": 334, + "flexibleengine_lb_listener_v2": 334, + "flexibleengine_lb_loadbalancer_v2": 334, + "flexibleengine_lb_member_v2": 334, + "flexibleengine_lb_monitor_v2": 334, + "flexibleengine_lb_pool_v2": 334, + "flexibleengine_mls_instance_v1": 335, + "flexibleengine_mrs_cluster_v1": 336, + "flexibleengine_mrs_job_v1": 336, + "flexibleengine_nat_dnat_rule_v2": 343, + "flexibleengine_nat_gateway_v2": 343, + "flexibleengine_nat_snat_rule_v2": 343, + "flexibleengine_networking_floatingip_associate_v2": 337, + "flexibleengine_networking_floatingip_v2": 337, + "flexibleengine_networking_network_v2": 337, + "flexibleengine_networking_port_v2": 337, + "flexibleengine_networking_router_interface_v2": 337, + "flexibleengine_networking_router_route_v2": 337, + "flexibleengine_networking_router_v2": 337, + "flexibleengine_networking_secgroup_rule_v2": 337, + "flexibleengine_networking_secgroup_v2": 337, + "flexibleengine_networking_subnet_v2": 337, + "flexibleengine_networking_vip_associate_v2": 337, + "flexibleengine_networking_vip_v2": 337, + "flexibleengine_resource_rts_stack_v1": 346, + "flexibleengine_rts_software_config_v1": 346, + "flexibleengine_s3_bucket": 340, + "flexibleengine_s3_bucket_object": 340, + "flexibleengine_s3_bucket_policy": 340, + "flexibleengine_sfs_file_system_v2": 345, + "flexibleengine_vpc_eip_v1": 338, + "flexibleengine_vpc_peering_connection_accepter_v2": 337, + "flexibleengine_vpc_peering_connection_v2": 337, + "flexibleengine_vpc_route_v2": 337, + "flexibleengine_vpc_subnet_v1": 337, + "flexibleengine_vpc_v1": 337, + "fortios_firewall_object_address": 445, + "fortios_firewall_object_addressgroup": 445, + "fortios_firewall_object_ippool": 445, + "fortios_firewall_object_service": 445, + "fortios_firewall_object_servicegroup": 445, + "fortios_firewall_object_vip": 445, + "fortios_firewall_object_vipgroup": 445, + "fortios_firewall_security_policy": 445, + "fortios_log_fortianalyzer_setting": 445, + "fortios_log_syslog_setting": 445, + "fortios_networking_interface_port": 445, + "fortios_networking_route_static": 445, + "fortios_system_admin_administrator": 445, + "fortios_system_admin_profiles": 445, + "fortios_system_apiuser_setting": 445, + "fortios_system_license_forticare": 445, + "fortios_system_license_vdom": 445, + "fortios_system_license_vm": 445, + "fortios_system_setting_dns": 445, + "fortios_system_setting_global": 445, + "fortios_system_setting_ntp": 445, + "fortios_system_vdom_setting": 445, + "fortios_vpn_ipsec_phase1interface": 445, + "fortios_vpn_ipsec_phase2interface": 445, + "github_branch_protection": 387, + "github_issue_label": 387, + "github_membership": 387, + "github_organization_block": 387, + "github_organization_project": 387, + "github_organization_webhook": 387, + "github_project_column": 387, + "github_repository": 387, + "github_repository_collaborator": 387, + "github_repository_deploy_key": 387, + "github_repository_project": 387, + "github_repository_webhook": 387, + "github_team": 387, + "github_team_membership": 387, + "github_team_repository": 387, + "github_user_gpg_key": 387, + "github_user_invitation_accepter": 387, + "github_user_ssh_key": 387, + "gitlab_deploy_key": 188, + "gitlab_group": 188, + "gitlab_group_membership": 188, + "gitlab_group_variable": 188, + "gitlab_label": 188, + "gitlab_pipeline_trigger": 188, + "gitlab_project": 188, + "gitlab_project_cluster": 188, + "gitlab_project_hook": 188, + "gitlab_project_membership": 188, + "gitlab_project_variable": 188, + "gitlab_service_slack": 188, + "gitlab_user": 188, + "google_access_context_manager_access_level": 105, + "google_access_context_manager_access_policy": 105, + "google_access_context_manager_service_perimeter": 105, + "google_app_engine_application": 106, + "google_app_engine_firewall_rule": 106, + "google_bigquery_dataset": 107, + "google_bigquery_table": 107, + "google_bigtable_instance": 108, + "google_bigtable_table": 108, + "google_billing_account_iam_binding": 113, + "google_billing_account_iam_member": 113, + "google_billing_account_iam_policy": 113, + "google_binary_authorization_attestor": 109, + "google_binary_authorization_policy": 109, + "google_cloud_scheduler_job": 114, + "google_cloudbuild_trigger": 110, + "google_cloudfunctions_function": 112, + "google_cloudiot_registry": 138, + "google_composer_environment": 111, + "google_compute_address": 116, + "google_compute_attached_disk": 116, + "google_compute_autoscaler": 116, + "google_compute_backend_bucket": 116, + "google_compute_backend_bucket_signed_url_key": 116, + "google_compute_backend_service": 116, + "google_compute_backend_service_signed_url_key": 116, + "google_compute_disk": 116, + "google_compute_firewall": 116, + "google_compute_forwarding_rule": 116, + "google_compute_global_address": 116, + "google_compute_global_forwarding_rule": 116, + "google_compute_ha_vpn_gateway": 116, + "google_compute_health_check": 116, + "google_compute_http_health_check": 116, + "google_compute_https_health_check": 116, + "google_compute_image": 116, + "google_compute_instance": 116, + "google_compute_instance_from_template": 116, + "google_compute_instance_group": 116, + "google_compute_instance_group_manager": 116, + "google_compute_instance_iam_binding": 116, + "google_compute_instance_iam_member": 116, + "google_compute_instance_iam_policy": 116, + "google_compute_instance_template": 116, + "google_compute_interconnect_attachment": 116, + "google_compute_managed_ssl_certificate": 116, + "google_compute_network": 116, + "google_compute_network_endpoint_group": 116, + "google_compute_network_peering": 116, + "google_compute_node_group": 116, + "google_compute_node_template": 116, + "google_compute_project_metadata": 116, + "google_compute_project_metadata_item": 116, + "google_compute_region_autoscaler": 116, + "google_compute_region_backend_service": 116, + "google_compute_region_disk": 116, + "google_compute_region_instance_group_manager": 116, + "google_compute_route": 116, + "google_compute_router": 116, + "google_compute_router_interface": 116, + "google_compute_router_nat": 116, + "google_compute_router_peer": 116, + "google_compute_security_policy": 116, + "google_compute_shared_vpc_host_project": 116, + "google_compute_shared_vpc_service_project": 116, + "google_compute_snapshot": 116, + "google_compute_ssl_certificate": 116, + "google_compute_ssl_policy": 116, + "google_compute_subnetwork": 116, + "google_compute_subnetwork_iam_binding": 116, + "google_compute_subnetwork_iam_member": 116, + "google_compute_subnetwork_iam_policy": 116, + "google_compute_target_http_proxy": 116, + "google_compute_target_https_proxy": 116, + "google_compute_target_pool": 116, + "google_compute_target_ssl_proxy": 116, + "google_compute_target_tcp_proxy": 116, + "google_compute_url_map": 116, + "google_compute_vpn_gateway": 116, + "google_compute_vpn_tunnel": 116, + "google_container_analysis_note": 117, + "google_container_cluster": 118, + "google_container_node_pool": 118, + "google_dataflow_job": 119, + "google_dataproc_cluster": 120, + "google_dataproc_cluster_iam_binding": 120, + "google_dataproc_cluster_iam_member": 120, + "google_dataproc_cluster_iam_policy": 120, + "google_dataproc_job": 120, + "google_dataproc_job_iam_binding": 120, + "google_dataproc_job_iam_member": 120, + "google_dataproc_job_iam_policy": 120, + "google_dns_managed_zone": 121, + "google_dns_policy": 121, + "google_dns_record_set": 121, + "google_endpoints_service": 122, + "google_filestore_instance": 123, + "google_firestore_index": 124, + "google_folder": 113, + "google_folder_iam_binding": 113, + "google_folder_iam_member": 113, + "google_folder_iam_policy": 113, + "google_folder_organization_policy": 113, + "google_iap_tunnel_instance_iam_binding": 125, + "google_iap_tunnel_instance_iam_member": 125, + "google_iap_tunnel_instance_iam_policy": 125, + "google_kms_crypto_key": 137, + "google_kms_crypto_key_iam_binding": 137, + "google_kms_crypto_key_iam_member": 137, + "google_kms_key_ring": 137, + "google_kms_key_ring_iam_binding": 137, + "google_kms_key_ring_iam_member": 137, + "google_kms_key_ring_iam_policy": 137, + "google_logging_billing_account_exclusion": 133, + "google_logging_billing_account_sink": 133, + "google_logging_folder_exclusion": 133, + "google_logging_folder_sink": 133, + "google_logging_metric": 133, + "google_logging_organization_exclusion": 133, + "google_logging_organization_sink": 133, + "google_logging_project_exclusion": 133, + "google_logging_project_sink": 133, + "google_monitoring_alert_policy": 134, + "google_monitoring_group": 134, + "google_monitoring_notification_channel": 134, + "google_monitoring_uptime_check_config": 134, + "google_organization_iam_binding": 113, + "google_organization_iam_custom_role": 113, + "google_organization_iam_member": 113, + "google_organization_iam_policy": 113, + "google_organization_policy": 113, + "google_project": 113, + "google_project_iam_binding": 113, + "google_project_iam_custom_role": 113, + "google_project_iam_member": 113, + "google_project_iam_policy": 113, + "google_project_organization_policy": 113, + "google_project_service": 113, + "google_project_services": 113, + "google_project_usage_export_bucket": 113, + "google_pubsub_subscription": 126, + "google_pubsub_subscription_iam_binding": 126, + "google_pubsub_subscription_iam_member": 126, + "google_pubsub_subscription_iam_policy": 126, + "google_pubsub_topic": 126, + "google_pubsub_topic_iam_binding": 126, + "google_pubsub_topic_iam_member": 126, + "google_pubsub_topic_iam_policy": 126, + "google_redis_instance": 127, + "google_resource_manager_lien": 113, + "google_runtimeconfig_config": 128, + "google_runtimeconfig_variable": 128, + "google_security_scanner_scan_config": 115, + "google_service_account": 113, + "google_service_account_iam_binding": 113, + "google_service_account_iam_member": 113, + "google_service_account_iam_policy": 113, + "google_service_account_key": 113, + "google_service_networking_connection": 129, + "google_sourcerepo_repository": 130, + "google_spanner_database": 131, + "google_spanner_database_iam_binding": 131, + "google_spanner_database_iam_member": 131, + "google_spanner_database_iam_policy": 131, + "google_spanner_instance": 131, + "google_spanner_instance_iam_binding": 131, + "google_spanner_instance_iam_member": 131, + "google_spanner_instance_iam_policy": 131, + "google_sql_database": 132, + "google_sql_database_instance": 132, + "google_sql_ssl_cert": 132, + "google_sql_user": 132, + "google_storage_bucket": 135, + "google_storage_bucket_acl": 135, + "google_storage_bucket_iam_binding": 135, + "google_storage_bucket_iam_member": 135, + "google_storage_bucket_object": 135, + "google_storage_default_object_access_control": 135, + "google_storage_default_object_acl": 135, + "google_storage_notification": 135, + "google_storage_object_access_control": 135, + "google_storage_object_acl": 135, + "google_storage_transfer_job": 136, + "grafana_alert_notification": 446, + "grafana_dashboard": 446, + "grafana_data_source": 446, + "grafana_organization": 446, + "hcloud_floating_ip": 417, + "hcloud_floating_ip_assignment": 417, + "hcloud_rdns": 417, + "hcloud_server": 417, + "hcloud_ssh_key": 417, + "hcloud_volume": 417, + "hcloud_volume_attachment": 417, + "heroku_account_feature": 271, + "heroku_addon": 271, + "heroku_addon_attachment": 271, + "heroku_app": 271, + "heroku_app_config_association": 271, + "heroku_app_feature": 271, + "heroku_app_release": 271, + "heroku_build": 271, + "heroku_cert": 271, + "heroku_config": 271, + "heroku_domain": 271, + "heroku_drain": 271, + "heroku_formation": 271, + "heroku_pipeline": 271, + "heroku_pipeline_coupling": 271, + "heroku_slug": 271, + "heroku_space": 271, + "heroku_space_app_access": 271, + "heroku_space_inbound_ruleset": 271, + "heroku_space_peering_connection_accepter": 271, + "heroku_space_vpn_connection": 271, + "heroku_team_collaborator": 271, + "heroku_team_member": 271, + "huaweicloud-vbs-backup-policy-v2": 181, + "huaweicloud-vbs-backup-v2": 181, + "huaweicloud_as_configuration_v1": 177, + "huaweicloud_as_group_v1": 177, + "huaweicloud_as_policy_v1": 177, + "huaweicloud_blockstorage_volume_v2": 156, + "huaweicloud_cce_cluster_v3": 180, + "huaweicloud_cce_nodes_v3": 180, + "huaweicloud_ces-alarmrule": 176, + "huaweicloud_compute_floatingip_associate_v2": 157, + "huaweicloud_compute_floatingip_v2": 157, + "huaweicloud_compute_instance_v2": 157, + "huaweicloud_compute_keypair_v2": 157, + "huaweicloud_compute_secgroup_v2": 157, + "huaweicloud_compute_servergroup_v2": 157, + "huaweicloud_compute_volume_attach_v2": 157, + "huaweicloud_csbs_backup_policy_v1": 178, + "huaweicloud_csbs_backup_v1": 178, + "huaweicloud_cts_tracker_v1": 179, + "huaweicloud_dcs_instance_v1": 182, + "huaweicloud_dns_recordset_v2": 158, + "huaweicloud_dns_zone_v2": 158, + "huaweicloud_dws_cluster": 183, + "huaweicloud_elb_backendecs": 168, + "huaweicloud_elb_healthcheck": 168, + "huaweicloud_elb_listener": 168, + "huaweicloud_elb_loadbalancer": 168, + "huaweicloud_fw_firewall_group_v2": 159, + "huaweicloud_fw_policy_v2": 159, + "huaweicloud_fw_rule_v2": 159, + "huaweicloud_iam_agency_v3": 175, + "huaweicloud_identity_group_membership_v3": 160, + "huaweicloud_identity_group_v3": 160, + "huaweicloud_identity_project_v3": 160, + "huaweicloud_identity_role_assignment_v3": 160, + "huaweicloud_identity_user_v3": 160, + "huaweicloud_images_image_v2": 161, + "huaweicloud_kms_key_v1": 166, + "huaweicloud_lb_l7policy_v2": 165, + "huaweicloud_lb_l7rule_v2": 165, + "huaweicloud_lb_listener_v2": 165, + "huaweicloud_lb_loadbalancer_v2": 165, + "huaweicloud_lb_member_v2": 165, + "huaweicloud_lb_monitor_v2": 165, + "huaweicloud_lb_pool_v2": 165, + "huaweicloud_maas_task_v1": 162, + "huaweicloud_mls_instance": 184, + "huaweicloud_mrs_cluster_v1": 163, + "huaweicloud_mrs_job_v1": 163, + "huaweicloud_nat_gateway_v2": 167, + "huaweicloud_nat_snat_rule_v2": 167, + "huaweicloud_networking_floatingip_associate_v2": 164, + "huaweicloud_networking_floatingip_v2": 164, + "huaweicloud_networking_network_v2": 164, + "huaweicloud_networking_port_v2": 164, + "huaweicloud_networking_router_interface_v2": 164, + "huaweicloud_networking_router_route_v2": 164, + "huaweicloud_networking_router_v2": 164, + "huaweicloud_networking_secgroup_rule_v2": 164, + "huaweicloud_networking_secgroup_v2": 164, + "huaweicloud_networking_subnet_v2": 164, + "huaweicloud_rds_instance_v1": 171, + "huaweicloud_rts_software_config_v1": 174, + "huaweicloud_rts_stack_v1": 174, + "huaweicloud_s3-bucket-object": 169, + "huaweicloud_s3_bucket": 169, + "huaweicloud_s3_object_policy": 169, + "huaweicloud_sfs_file_system_v2": 173, + "huaweicloud_smn_subscription_v2": 170, + "huaweicloud_smn_topic_v2": 170, + "huaweicloud_vpc_eip_v1": 172, + "huaweicloud_vpc_peering_connection_accepter_v2": 164, + "huaweicloud_vpc_peering_connection_v2": 164, + "huaweicloud_vpc_route_v2": 164, + "huaweicloud_vpc_subnet_v1": 164, + "huaweicloud_vpc_v1": 164, + "icinga2_checkcommand": 465, + "icinga2_host": 465, + "icinga2_hostgroup": 465, + "icinga2_notification": 465, + "icinga2_service": 465, + "icinga2_user": 465, + "influxdb_continuous_query": 139, + "influxdb_database": 139, + "influxdb_user": 139, + "kubernetes_cluster_role": 464, + "kubernetes_cluster_role_binding": 464, + "kubernetes_config_map": 464, + "librato_alert": 444, + "librato_metric": 444, + "librato_service": 444, + "librato_space": 444, + "librato_space_chart": 444, + "linode_domain": 237, + "linode_domain_record": 237, + "linode_image": 237, + "linode_instance": 237, + "linode_nodebalancer": 237, + "linode_nodebalancer_config": 237, + "linode_nodebalancer_node": 237, + "linode_rdns": 237, + "linode_sshkey": 237, + "linode_stackscript": 237, + "linode_token": 237, + "linode_volume": 237, + "logentries_log": 149, + "logentries_logset": 149, + "logicmonitor_collector": 0, + "logicmonitor_collectorgroup": 0, + "logicmonitor_device": 0, + "logicmonitor_devicegroup": 0, + "lun resource": 270, + "mailgun_domain": 466, + "meta": 10000, + "mount resource": 270, + "mrscaler_aws": 419, + "multai_balancer": 419, + "multai_deployment": 419, + "multai_listener": 419, + "multai_routing_rule": 419, + "multai_target": 419, + "multai_target_set": 419, + "mysql_database": 422, + "mysql_grant": 422, + "mysql_role": 422, + "mysql_user": 422, + "mysql_user_password": 422, + "ncloud_block_storage": 155, + "ncloud_block_storage_snapshot": 155, + "ncloud_load_balancer": 155, + "ncloud_load_balancer_ssl_certificate": 155, + "ncloud_login_key": 155, + "ncloud_nas_volume": 155, + "ncloud_port_forwarding_rule": 155, + "ncloud_public_ip": 155, + "ncloud_server": 155, + "netlify_build_hook": 443, + "netlify_deploy_key": 443, + "netlify_hook": 443, + "netlify_site": 443, + "newrelic_alert_channel": 324, + "newrelic_alert_condition": 324, + "newrelic_alert_policy": 324, + "newrelic_alert_policy_channel": 324, + "newrelic_dashboard": 324, + "newrelic_infra_alert_condition": 324, + "newrelic_nrql_alert_condition": 324, + "newrelic_synthetics_alert_condition": 324, + "nomad_acl_policy": 235, + "nomad_acl_token": 235, + "nomad_job": 235, + "nomad_namespace": 235, + "nomad_quota_specification": 235, + "nomad_sentinel_policy": 235, + "ns1_apikey": 420, + "ns1_datafeed": 420, + "ns1_datasource": 420, + "ns1_monitoringjob": 420, + "ns1_notifylist": 420, + "ns1_record": 420, + "ns1_team": 420, + "ns1_user": 420, + "ns1_zone": 420, + "nsxt_algorithm_type_ns_service": 461, + "nsxt_dhcp_relay_profile": 460, + "nsxt_dhcp_relay_service": 460, + "nsxt_dhcp_server_ip_pool": 460, + "nsxt_dhcp_server_profile": 460, + "nsxt_ether_type_ns_service": 461, + "nsxt_firewall_section": 460, + "nsxt_icmp_type_ns_service": 461, + "nsxt_igmp_type_ns_service": 461, + "nsxt_ip_block": 460, + "nsxt_ip_block_subnet": 460, + "nsxt_ip_discovery_switching_profile": 463, + "nsxt_ip_pool": 460, + "nsxt_ip_protocol_ns_service": 461, + "nsxt_ip_set": 460, + "nsxt_l4_port_set_ns_service": 461, + "nsxt_lb_client_ssl_profile": 460, + "nsxt_lb_cookie_persistence_profile": 460, + "nsxt_lb_fast_tcp_application_profile": 460, + "nsxt_lb_fast_udp_application_profile": 460, + "nsxt_lb_http_application_profile": 460, + "nsxt_lb_http_forwarding_rule": 460, + "nsxt_lb_http_monitor": 462, + "nsxt_lb_http_request_rewrite_rule": 460, + "nsxt_lb_http_response_rewrite_rule": 460, + "nsxt_lb_http_virtual_server": 460, + "nsxt_lb_https_monitor": 462, + "nsxt_lb_icmp_monitor": 462, + "nsxt_lb_passive_monitor": 462, + "nsxt_lb_pool": 460, + "nsxt_lb_server_ssl_profile": 460, + "nsxt_lb_service": 460, + "nsxt_lb_source__persistence_profile": 460, + "nsxt_lb_tcp_monitor": 462, + "nsxt_lb_tcp_virtual_server": 460, + "nsxt_lb_udp_monitor": 462, + "nsxt_lb_udp_virtual_server": 460, + "nsxt_logical_dhcp_port": 460, + "nsxt_logical_dhcp_server": 460, + "nsxt_logical_port": 460, + "nsxt_logical_router_centralized_service_port": 460, + "nsxt_logical_router_downlink_port": 460, + "nsxt_logical_router_link_port_on_tier0": 460, + "nsxt_logical_router_link_port_on_tier1": 460, + "nsxt_logical_switch": 460, + "nsxt_logical_tier0_router": 460, + "nsxt_logical_tier1_router": 460, + "nsxt_mac_management_switching_profile": 463, + "nsxt_nat_rule": 460, + "nsxt_ns_group": 460, + "nsxt_ns_service_group": 461, + "nsxt_qos_switching_profile": 463, + "nsxt_spoofguard_switching_profile": 463, + "nsxt_static_route": 460, + "nsxt_switch_security_switching_profile": 463, + "nsxt_vlan_logical_switch": 460, + "nsxt_vm_tags": 460, + "nutanix_category_key": 325, + "nutanix_category_value": 325, + "nutanix_image": 325, + "nutanix_subnet": 325, + "nutanix_virtual_machine": 325, + "nutanix_volume_group": 325, + "ocean_aws": 419, + "ocean_aws_launch_spec": 419, + "ocean_gke": 419, + "oci_audit_configuration": 274, + "oci_autoscaling_auto_scaling_configuration": 275, + "oci_budget_alert_rule": 276, + "oci_budget_budget": 276, + "oci_containerengine_cluster": 277, + "oci_containerengine_node_pool": 277, + "oci_core_app_catalog_listing_resource_version_agreement": 278, + "oci_core_app_catalog_subscription": 278, + "oci_core_boot_volume": 278, + "oci_core_boot_volume_backup": 278, + "oci_core_console_history": 278, + "oci_core_cpe": 278, + "oci_core_cross_connect": 278, + "oci_core_cross_connect_group": 278, + "oci_core_dhcp_options": 278, + "oci_core_drg": 278, + "oci_core_drg_attachment": 278, + "oci_core_image": 278, + "oci_core_instance": 278, + "oci_core_instance_configuration": 278, + "oci_core_instance_console_connection": 278, + "oci_core_instance_pool": 278, + "oci_core_internet_gateway": 278, + "oci_core_ipsec": 278, + "oci_core_local_peering_gateway": 278, + "oci_core_nat_gateway": 278, + "oci_core_private_ip": 278, + "oci_core_public_ip": 278, + "oci_core_remote_peering_connection": 278, + "oci_core_route_table": 278, + "oci_core_route_table_attachment": 278, + "oci_core_security_list": 278, + "oci_core_service_gateway": 278, + "oci_core_subnet": 278, + "oci_core_vcn": 278, + "oci_core_virtual_circuit": 278, + "oci_core_vnic_attachment": 278, + "oci_core_volume": 278, + "oci_core_volume_attachment": 278, + "oci_core_volume_backup": 278, + "oci_core_volume_backup_policy_assignment": 278, + "oci_core_volume_group": 278, + "oci_core_volume_group_backup": 278, + "oci_database_autonomous_data_warehouse": 279, + "oci_database_autonomous_data_warehouse_backup": 279, + "oci_database_autonomous_database": 279, + "oci_database_autonomous_database_backup": 279, + "oci_database_backup": 279, + "oci_database_data_guard_association": 279, + "oci_database_db_home": 279, + "oci_database_db_system": 279, + "oci_database_exadata_iorm_config": 279, + "oci_dns_record": 280, + "oci_dns_steering_policy": 280, + "oci_dns_steering_policy_attachment": 280, + "oci_dns_zone": 280, + "oci_email_sender": 281, + "oci_email_suppression": 281, + "oci_file_storage_export": 282, + "oci_file_storage_export_set": 282, + "oci_file_storage_file_system": 282, + "oci_file_storage_mount_target": 282, + "oci_file_storage_snapshot": 282, + "oci_health_checks_http_monitor": 283, + "oci_health_checks_http_probe": 283, + "oci_health_checks_ping_monitor": 283, + "oci_health_checks_ping_probe": 283, + "oci_identity_api_key": 284, + "oci_identity_auth_token": 284, + "oci_identity_authentication_policy": 284, + "oci_identity_compartment": 284, + "oci_identity_customer_secret_key": 284, + "oci_identity_dynamic_group": 284, + "oci_identity_group": 284, + "oci_identity_identity_provider": 284, + "oci_identity_idp_group_mapping": 284, + "oci_identity_policy": 284, + "oci_identity_smtp_credential": 284, + "oci_identity_swift_password": 284, + "oci_identity_tag": 284, + "oci_identity_tag_default": 284, + "oci_identity_tag_namespace": 284, + "oci_identity_ui_password": 284, + "oci_identity_user": 284, + "oci_identity_user_capabilities_management": 284, + "oci_identity_user_group_membership": 284, + "oci_kms_encrypted_data": 285, + "oci_kms_generated_key": 285, + "oci_kms_key": 285, + "oci_kms_key_version": 285, + "oci_kms_vault": 285, + "oci_load_balancer_backend": 286, + "oci_load_balancer_backend_set": 286, + "oci_load_balancer_certificate": 286, + "oci_load_balancer_hostname": 286, + "oci_load_balancer_listener": 286, + "oci_load_balancer_load_balancer": 286, + "oci_load_balancer_path_route_set": 286, + "oci_load_balancer_rule_set": 286, + "oci_monitoring_alarm": 287, + "oci_objectstorage_bucket": 288, + "oci_objectstorage_object": 288, + "oci_objectstorage_object_lifecycle_policy": 288, + "oci_objectstorage_preauthrequest": 288, + "oci_ons_notification_topic": 289, + "oci_ons_subscription": 289, + "oci_streaming_stream": 290, + "oci_waas_certificate": 291, + "oci_waas_waas_policy": 291, + "oneandone_baremetal": 389, + "oneandone_block_storage": 389, + "oneandone_firewall_policy": 389, + "oneandone_loadbalancer": 389, + "oneandone_monitoring_policy": 389, + "oneandone_private_network": 389, + "oneandone_public_ip": 389, + "oneandone_server": 389, + "oneandone_shared_storage": 389, + "oneandone_ssh_key": 389, + "oneandone_vpn": 389, + "opc_compute_acl": 427, + "opc_compute_image_list": 427, + "opc_compute_image_list_entry": 427, + "opc_compute_instance": 427, + "opc_compute_ip_address_association": 427, + "opc_compute_ip_address_prefix_set": 427, + "opc_compute_ip_address_reservation": 427, + "opc_compute_ip_association": 427, + "opc_compute_ip_network": 427, + "opc_compute_ip_network_exchange": 427, + "opc_compute_ip_reservation": 427, + "opc_compute_machine_image": 427, + "opc_compute_orchestrated_instance": 427, + "opc_compute_route": 427, + "opc_compute_sec_rule": 427, + "opc_compute_security_application": 427, + "opc_compute_security_association": 427, + "opc_compute_security_ip_list": 427, + "opc_compute_security_list": 427, + "opc_compute_security_protocol": 427, + "opc_compute_security_rule": 427, + "opc_compute_ssh_key": 427, + "opc_compute_storage_volume": 427, + "opc_compute_storage_volume_attachment": 427, + "opc_compute_storage_volume_snapshot": 427, + "opc_compute_vnic_set": 427, + "opc_compute_vpn_endpoint_v2": 427, + "opc_lbaas_certificate": 428, + "opc_lbaas_listener": 428, + "opc_lbaas_load_balancer": 428, + "opc_lbaas_policy": 428, + "opc_lbaas_server_pool": 428, + "opc_storage_container": 429, + "opc_storage_object": 429, + "openstack_blockstorage_volume_attach_v2": 304, + "openstack_blockstorage_volume_attach_v3": 304, + "openstack_blockstorage_volume_v1": 304, + "openstack_blockstorage_volume_v2": 304, + "openstack_blockstorage_volume_v3": 304, + "openstack_compute_flavor_access_v2": 305, + "openstack_compute_flavor_v2": 305, + "openstack_compute_floatingip_associate_v2": 305, + "openstack_compute_floatingip_v2": 305, + "openstack_compute_instance_v2": 305, + "openstack_compute_interface_attach_v2": 305, + "openstack_compute_keypair_v2": 305, + "openstack_compute_secgroup_v2": 305, + "openstack_compute_servergroup_v2": 305, + "openstack_compute_volume_attach_v2": 305, + "openstack_containerinfra_cluster_v1": 306, + "openstack_containerinfra_clustertemplate_v1": 306, + "openstack_db_configuration_v1": 307, + "openstack_db_database_v1": 307, + "openstack_db_instance_v1": 307, + "openstack_db_user_v1": 307, + "openstack_dns_recordset_v2": 308, + "openstack_dns_zone_v2": 308, + "openstack_fw_firewall_v1": 313, + "openstack_fw_policy_v1": 313, + "openstack_fw_rule_v1": 313, + "openstack_identity_application_credential_v3": 309, + "openstack_identity_project_v3": 309, + "openstack_identity_role_assignment_v3": 309, + "openstack_identity_role_v3": 309, + "openstack_identity_user_v3": 309, + "openstack_images_image_v2": 310, + "openstack_lb_l7policy_v2": 312, + "openstack_lb_l7rule_v2": 312, + "openstack_lb_listener_v2": 312, + "openstack_lb_loadbalancer_v2": 312, + "openstack_lb_member_v1": 312, + "openstack_lb_member_v2": 312, + "openstack_lb_monitor_v1": 312, + "openstack_lb_monitor_v2": 312, + "openstack_lb_pool_v1": 312, + "openstack_lb_pool_v2": 312, + "openstack_lb_vip_v1": 312, + "openstack_networking_addressscope_v2": 311, + "openstack_networking_floatingip_associate_v2": 311, + "openstack_networking_floatingip_v2": 311, + "openstack_networking_network_v2": 311, + "openstack_networking_port_secgroup_associate_v2": 311, + "openstack_networking_port_v2": 311, + "openstack_networking_router_interface_v2": 311, + "openstack_networking_router_route_v2": 311, + "openstack_networking_router_v2": 311, + "openstack_networking_secgroup_rule_v2": 311, + "openstack_networking_secgroup_v2": 311, + "openstack_networking_subnet_route_v2": 311, + "openstack_networking_subnet_v2": 311, + "openstack_networking_subnetpool_v2": 311, + "openstack_networking_trunk_v2": 311, + "openstack_objectstorage_container_v1": 314, + "openstack_objectstorage_object_v1": 314, + "openstack_objectstorage_tempurl_v1": 314, + "openstack_sharedfilesystem_securityservice_v2": 316, + "openstack_sharedfilesystem_share_access_v2": 316, + "openstack_sharedfilesystem_share_v2": 316, + "openstack_sharedfilesystem_sharenetwork_v2": 316, + "openstack_vpnaas_endpoint_group_v2": 315, + "openstack_vpnaas_ike_policy_v2": 315, + "openstack_vpnaas_ipsec_policy_v2": 315, + "openstack_vpnaas_service_v2": 315, + "openstack_vpnaas_site_connection_v2": 315, + "opentelekomcloud-resource-rts-stack-v1": 257, + "opentelekomcloud-vbs-backup-policy-v2": 264, + "opentelekomcloud-vbs-backup-share-v2": 264, + "opentelekomcloud-vbs-backup-v2": 264, + "opentelekomcloud_antiddos_v1": 266, + "opentelekomcloud_as_configuration_v1": 260, + "opentelekomcloud_as_group_v1": 260, + "opentelekomcloud_as_policy_v1": 260, + "opentelekomcloud_blockstorage_volume_v2": 240, + "opentelekomcloud_cce_cluster_v3": 265, + "opentelekomcloud_cce_node_v3": 265, + "opentelekomcloud_ces_alarmrule": 239, + "opentelekomcloud_compute_floatingip_associate_v2": 241, + "opentelekomcloud_compute_floatingip_v2": 241, + "opentelekomcloud_compute_instance_v2": 241, + "opentelekomcloud_compute_keypair_v2": 241, + "opentelekomcloud_compute_secgroup_v2": 241, + "opentelekomcloud_compute_server_v2": 241, + "opentelekomcloud_compute_servergroup_v2": 241, + "opentelekomcloud_compute_volume_attach_v2": 241, + "opentelekomcloud_csbs_backup_policy_v1": 261, + "opentelekomcloud_csbs_backup_v1": 261, + "opentelekomcloud_css_cluster_v1": 268, + "opentelekomcloud_cts_tracker_v1": 263, + "opentelekomcloud_dcs_instance_v1": 267, + "opentelekomcloud_deh_host_v1": 259, + "opentelekomcloud_dms_group_v1": 262, + "opentelekomcloud_dms_queue_v1": 262, + "opentelekomcloud_dns_recordset_v2": 242, + "opentelekomcloud_dns_zone_v2": 242, + "opentelekomcloud_elb_backend": 243, + "opentelekomcloud_elb_health": 243, + "opentelekomcloud_elb_listener": 243, + "opentelekomcloud_elb_loadbalancer": 243, + "opentelekomcloud_fw_firewall_group_v2": 251, + "opentelekomcloud_fw_policy_v2": 251, + "opentelekomcloud_fw_rule_v2": 251, + "opentelekomcloud_identity_agency_v3": 244, + "opentelekomcloud_identity_group_membership_v3": 244, + "opentelekomcloud_identity_group_v3": 244, + "opentelekomcloud_identity_project_v3": 244, + "opentelekomcloud_identity_role_assignment_v3": 244, + "opentelekomcloud_identity_role_v3": 244, + "opentelekomcloud_identity_user_v3": 244, + "opentelekomcloud_images_image_v2": 245, + "opentelekomcloud_kms_key_v1": 254, + "opentelekomcloud_lb_listener_v2": 250, + "opentelekomcloud_lb_loadbalancer_v2": 250, + "opentelekomcloud_lb_member_v2": 250, + "opentelekomcloud_lb_monitor_v2": 250, + "opentelekomcloud_lb_pool_v2": 250, + "opentelekomcloud_maas_task_v1": 246, + "opentelekomcloud_mrs_cluster_v1": 247, + "opentelekomcloud_mrs_job_v1": 247, + "opentelekomcloud_nat_gateway_v2": 248, + "opentelekomcloud_nat_snat_rule_v2": 248, + "opentelekomcloud_networking_floatingip_associate_v2": 249, + "opentelekomcloud_networking_floatingip_v2": 249, + "opentelekomcloud_networking_network_v2": 249, + "opentelekomcloud_networking_port_v2": 249, + "opentelekomcloud_networking_router_interface_v2": 249, + "opentelekomcloud_networking_router_route_v2": 249, + "opentelekomcloud_networking_router_v2": 249, + "opentelekomcloud_networking_secgroup_rule_v2": 249, + "opentelekomcloud_networking_secgroup_v2": 249, + "opentelekomcloud_networking_subnet_v2": 249, + "opentelekomcloud_networking_vip_associate_v2": 249, + "opentelekomcloud_networking_vip_v2": 249, + "opentelekomcloud_rds_instance_v1": 252, + "opentelekomcloud_rds_instance_v3": 252, + "opentelekomcloud_rds_parametergroup_v3": 252, + "opentelekomcloud_rts_software_config_v1": 257, + "opentelekomcloud_rts_software_deployment_v1": 257, + "opentelekomcloud_s3-bucket-object": 253, + "opentelekomcloud_s3_bucket": 253, + "opentelekomcloud_s3_bucket_policy": 253, + "opentelekomcloud_sfs_file_system_v2": 258, + "opentelekomcloud_smn_subscription_v2": 255, + "opentelekomcloud_smn_topic_v2": 255, + "opentelekomcloud_vpc_eip_v1": 256, + "opentelekomcloud_vpc_peering_connection_accepter_v2": 249, + "opentelekomcloud_vpc_peering_connection_v2": 249, + "opentelekomcloud_vpc_route_v2": 249, + "opentelekomcloud_vpc_subnet_v1": 249, + "opentelekomcloud_vpc_v1": 249, + "opentelekomcloud_waf_certificate_v1": 269, + "opentelekomcloud_waf_domain_v1": 269, + "opsgenie_team": 354, + "opsgenie_user": 354, + "oraclepaas_application_container": 187, + "oraclepaas_database_access_rule": 187, + "oraclepaas_database_service_instance": 187, + "oraclepaas_java_access_rule": 187, + "oraclepaas_java_service_instance": 187, + "oraclepaas_mysql_access_rule": 187, + "oraclepaas_mysql_service_instance": 187, + "output": 10002, + "ovh_cloud_network_private": 318, + "ovh_cloud_network_private_subnet": 318, + "ovh_cloud_user": 318, + "ovh_domain_zone_record": 319, + "ovh_domain_zone_redirection": 319, + "ovh_ip_reverse": 320, + "ovh_iploadbalancing_http_route": 321, + "ovh_iploadbalancing_http_route_rule": 321, + "ovh_iploadbalancing_tcp_farm": 321, + "ovh_iploadbalancing_tcp_farm_server": 321, + "ovh_iploadbalancing_tcp_frontend": 321, + "ovh_publiccloud_private_network": 318, + "ovh_publiccloud_private_network_subnet": 318, + "ovh_publiccloud_user": 318, + "ovh_vrack_cloudproject": 322, + "ovh_vrack_publiccloud_attachment": 322, + "packet_bgp_session": 150, + "packet_connect": 150, + "packet_device": 150, + "packet_ip_attachment": 150, + "packet_organization": 150, + "packet_port_vlan_attachment": 150, + "packet_project": 150, + "packet_project_ssh_key": 150, + "packet_reserved_ip_block": 150, + "packet_spot_market_request": 150, + "packet_ssh_key": 150, + "packet_vlan": 150, + "packet_volume": 150, + "packet_volume_attachment": 150, + "pagerduty_addon": 388, + "pagerduty_escalation_policy": 388, + "pagerduty_extension": 388, + "pagerduty_maintenance_window": 388, + "pagerduty_schedule": 388, + "pagerduty_service": 388, + "pagerduty_service_integration": 388, + "pagerduty_team": 388, + "pagerduty_team_membership": 388, + "pagerduty_user": 388, + "pagerduty_user_contact_method": 388, + "panos_address_group": 4, + "panos_address_object": 4, + "panos_administrative_tag": 4, + "panos_bfd_profile": 4, + "panos_bgp": 4, + "panos_bgp_aggregate": 4, + "panos_bgp_aggregate_advertise_filter": 4, + "panos_bgp_aggregate_suppress_filter": 4, + "panos_bgp_auth_profile": 4, + "panos_bgp_conditional_adv": 4, + "panos_bgp_conditional_adv_advertise_filter": 4, + "panos_bgp_conditional_adv_non_exist_filter": 4, + "panos_bgp_dampening_profile": 4, + "panos_bgp_export_rule_group": 4, + "panos_bgp_import_rule_group": 4, + "panos_bgp_peer": 4, + "panos_bgp_peer_group": 4, + "panos_bgp_redist_rule": 4, + "panos_dag_tags": 4, + "panos_edl": 4, + "panos_ethernet_interface": 4, + "panos_general_settings": 4, + "panos_ike_crypto_profile": 4, + "panos_ike_gateway": 4, + "panos_ipsec_crypto_profile": 4, + "panos_ipsec_tunnel": 4, + "panos_ipsec_tunnel_proxy_id_ipv4": 4, + "panos_license_api_key": 4, + "panos_licensing": 4, + "panos_loopback_interface": 4, + "panos_management_profile": 4, + "panos_nat_policy": 4, + "panos_nat_rule": 4, + "panos_nat_rule_group": 4, + "panos_panorama_address_group": 3, + "panos_panorama_address_object": 3, + "panos_panorama_administrative_tag": 3, + "panos_panorama_bfd_profile": 3, + "panos_panorama_bgp": 3, + "panos_panorama_bgp_aggregate": 3, + "panos_panorama_bgp_aggregate_advertise_filter": 3, + "panos_panorama_bgp_aggregate_suppress_filter": 3, + "panos_panorama_bgp_auth_profile": 3, + "panos_panorama_bgp_conditional_adv": 3, + "panos_panorama_bgp_conditional_adv_advertise_filter": 3, + "panos_panorama_bgp_conditional_adv_non_exist_filter": 3, + "panos_panorama_bgp_dampening_profile": 3, + "panos_panorama_bgp_export_rule_group": 3, + "panos_panorama_bgp_import_rule_group": 3, + "panos_panorama_bgp_peer": 3, + "panos_panorama_bgp_peer_group": 3, + "panos_panorama_bgp_redist_rule": 3, + "panos_panorama_device_group": 3, + "panos_panorama_device_group_entry": 3, + "panos_panorama_edl": 3, + "panos_panorama_ethernet_interface": 3, + "panos_panorama_ike_crypto_profile": 3, + "panos_panorama_ike_gateway": 3, + "panos_panorama_ipsec_crypto_profile": 3, + "panos_panorama_ipsec_tunnel": 3, + "panos_panorama_ipsec_tunnel_proxy_id_ipv4": 3, + "panos_panorama_loopback_interface": 3, + "panos_panorama_management_profile": 3, + "panos_panorama_nat_policy": 3, + "panos_panorama_nat_rule": 3, + "panos_panorama_nat_rule_group": 3, + "panos_panorama_redistribution_profile_ipv4": 3, + "panos_panorama_security_policies": 3, + "panos_panorama_security_policy": 3, + "panos_panorama_security_policy_group": 3, + "panos_panorama_security_rule_group": 3, + "panos_panorama_service_group": 3, + "panos_panorama_service_object": 3, + "panos_panorama_static_route_ipv4": 3, + "panos_panorama_template": 3, + "panos_panorama_template_entry": 3, + "panos_panorama_template_stack": 3, + "panos_panorama_template_stack_entry": 3, + "panos_panorama_template_variable": 3, + "panos_panorama_tunnel_interface": 3, + "panos_panorama_virtual_router": 3, + "panos_panorama_virtual_router_entry": 3, + "panos_panorama_vlan_interface": 3, + "panos_panorama_zone": 3, + "panos_panorama_zone_entry": 3, + "panos_redistribution_profile_ipv4": 4, + "panos_security_policies": 4, + "panos_security_policy": 4, + "panos_security_policy_group": 4, + "panos_security_rule_group": 4, + "panos_service_group": 4, + "panos_service_object": 4, + "panos_static_route_ipv4": 4, + "panos_telemetry": 4, + "panos_tunnel_interface": 4, + "panos_virtual_router": 4, + "panos_virtual_router_entry": 4, + "panos_vlan_interface": 4, + "panos_zone": 4, + "panos_zone_entry": 4, + "postgresql_database": 405, + "postgresql_default_privileges": 405, + "postgresql_extension": 405, + "postgresql_grant": 405, + "postgresql_role": 405, + "postgresql_schema": 405, + "powerdns_record": 6, + "profitbricks_datacenter": 442, + "profitbricks_firewall": 442, + "profitbricks_group": 442, + "profitbricks_ipblock": 442, + "profitbricks_ipfailover": 442, + "profitbricks_lan": 442, + "profitbricks_loadbalancer": 442, + "profitbricks_nic": 442, + "profitbricks_server": 442, + "profitbricks_share": 442, + "profitbricks_snapshot": 442, + "profitbricks_user": 442, + "profitbricks_volume": 442, + "provider": 10000, + "rabbitmq_binding": 421, + "rabbitmq_exchange": 421, + "rabbitmq_permissions": 421, + "rabbitmq_policy": 421, + "rabbitmq_queue": 421, + "rabbitmq_user": 421, + "rabbitmq_vhost": 421, + "rancher2_auth_config_activedirectory": 401, + "rancher2_auth_config_adfs": 401, + "rancher2_auth_config_azuread": 401, + "rancher2_auth_config_freeipa": 401, + "rancher2_auth_config_github": 401, + "rancher2_auth_config_openldap": 401, + "rancher2_auth_config_ping": 401, + "rancher2_bootstrap": 401, + "rancher2_catalog": 401, + "rancher2_cloud_credential": 401, + "rancher2_cluster": 401, + "rancher2_cluster_driver": 401, + "rancher2_cluster_logging": 401, + "rancher2_cluster_role_template_binding": 401, + "rancher2_etcd_backup": 401, + "rancher2_namespace": 401, + "rancher2_node_driver": 401, + "rancher2_node_pool": 401, + "rancher2_node_template": 401, + "rancher2_project": 401, + "rancher2_project_logging": 401, + "rancher2_project_role_template_binding": 401, + "rancher2_setting": 401, + "rancher_certificate": 404, + "rancher_environment": 404, + "rancher_host": 404, + "rancher_registration_token": 404, + "rancher_registry": 404, + "rancher_registry_credential": 404, + "rancher_secret": 404, + "rancher_stack": 404, + "rancher_volume": 404, + "random_id": 5, + "random_integer": 5, + "random_pet": 5, + "random_shuffle": 5, + "random_string": 5, + "random_uuid": 5, + "rds_instance_v1": 342, + "rightscale_credential": 236, + "rightscale_cwf_process": 236, + "rightscale_deployment": 236, + "rightscale_instance": 236, + "rightscale_network": 236, + "rightscale_network_gateway": 236, + "rightscale_route": 236, + "rightscale_route_table": 236, + "rightscale_security_group": 236, + "rightscale_security_group_rule": 236, + "rightscale_server": 236, + "rightscale_server_array": 236, + "rightscale_ssh_key": 236, + "rightscale_subnet": 236, + "rundeck_acl_policy": 355, + "rundeck_job": 355, + "rundeck_private_key": 355, + "rundeck_project": 355, + "rundeck_public_key": 355, + "runscope_bucket": 303, + "runscope_environment": 303, + "runscope_schedule": 303, + "runscope_step": 303, + "runscope_test": 303, + "scaleway_bucket": 317, + "scaleway_ip": 317, + "scaleway_security_group": 317, + "scaleway_security_group_rule": 317, + "scaleway_server": 317, + "scaleway_ssh_key": 317, + "scaleway_token": 317, + "scaleway_user_data": 317, + "scaleway_volume": 317, + "scaleway_volume_attachment": 317, + "selectel_vpc_crossregion_subnet_v2": 406, + "selectel_vpc_floatingip_v2": 406, + "selectel_vpc_keypair_v2": 406, + "selectel_vpc_license_v2": 406, + "selectel_vpc_project_v2": 406, + "selectel_vpc_role_v2": 406, + "selectel_vpc_subnet_v2": 406, + "selectel_vpc_token_v2": 406, + "selectel_vpc_user_v2": 406, + "selectel_vpc_vrrp_subnet_v2": 406, + "skytap_environment": 403, + "skytap_network": 403, + "skytap_project": 403, + "skytap_vm": 403, + "smn_subscription_v2": 341, + "smn_topic_v2": 341, + "ssh_key": 238, + "statuscake_test": 432, + "subscription": 419, + "telefonicaopencloud_ces_alarmrule": 453, + "telefonicaopencloud_compute_floatingip_associate_v2": 449, + "telefonicaopencloud_compute_floatingip_v2": 449, + "telefonicaopencloud_compute_instance_v2": 449, + "telefonicaopencloud_compute_keypair_v2": 449, + "telefonicaopencloud_compute_secgroup_v2": 449, + "telefonicaopencloud_compute_servergroup_v2": 449, + "telefonicaopencloud_compute_volume_attach_v2": 449, + "telefonicaopencloud_dns_recordset_v2": 450, + "telefonicaopencloud_dns_zone_v2": 450, + "telefonicaopencloud_elb_backendecs": 452, + "telefonicaopencloud_elb_healthcheck": 452, + "telefonicaopencloud_elb_listener": 452, + "telefonicaopencloud_elb_loadbalancer": 452, + "telefonicaopencloud_networking_floatingip_v2": 451, + "telefonicaopencloud_networking_network_v2": 451, + "telefonicaopencloud_networking_port_v2": 451, + "telefonicaopencloud_networking_router_interface_v2": 451, + "telefonicaopencloud_networking_router_route_v2": 451, + "telefonicaopencloud_networking_router_v2": 451, + "telefonicaopencloud_networking_secgroup_rule_v2": 451, + "telefonicaopencloud_networking_secgroup_v2": 451, + "telefonicaopencloud_networking_subnet_v2": 451, + "telefonicaopencloud_s3_bucket": 454, + "telefonicaopencloud_s3_bucket_object": 454, + "telefonicaopencloud_s3_bucket_policy": 454, + "telefonicaopencloud_smn_subscription_v2": 455, + "telefonicaopencloud_smn_topic_v2": 455, + "telefonicaopencloud_vpc_eip_v1": 456, + "template_dir": 294, + "tencentcloud_alb_server_attachment": 393, + "tencentcloud_cbs_snapshot": 390, + "tencentcloud_cbs_storage": 390, + "tencentcloud_cbs_storage_attachment": 390, + "tencentcloud_container_cluster": 391, + "tencentcloud_container_cluster_instance": 391, + "tencentcloud_cos_bucket": 396, + "tencentcloud_cos_bucket_object": 396, + "tencentcloud_dnat": 394, + "tencentcloud_eip": 392, + "tencentcloud_eip_association": 392, + "tencentcloud_instance": 392, + "tencentcloud_key_pair": 392, + "tencentcloud_lb": 393, + "tencentcloud_mysql_account": 395, + "tencentcloud_mysql_account_privilege": 395, + "tencentcloud_mysql_backup_policy": 395, + "tencentcloud_mysql_instance": 395, + "tencentcloud_mysql_readonly_instance": 395, + "tencentcloud_nat_gateway": 394, + "tencentcloud_redis_backup_config": 397, + "tencentcloud_redis_instance": 397, + "tencentcloud_route_entry": 394, + "tencentcloud_route_table": 394, + "tencentcloud_security_group": 394, + "tencentcloud_security_group_rule": 394, + "tencentcloud_subnet": 394, + "tencentcloud_vpc": 394, + "tfe_oauth_client": 296, + "tfe_organization": 296, + "tfe_organization_token": 296, + "tfe_policy_set": 296, + "tfe_sentinel_policy": 296, + "tfe_ssh_key": 296, + "tfe_team": 296, + "tfe_team_access": 296, + "tfe_team_member": 296, + "tfe_team_members": 296, + "tfe_team_token": 296, + "tfe_variable": 296, + "tfe_workspace": 296, + "tls_cert_request": 398, + "tls_locally_signed_cert": 398, + "tls_private_key": 398, + "tls_self_signed_cert": 398, + "triton_fabric": 430, + "triton_firewall_rule": 430, + "triton_instance_template": 430, + "triton_key": 430, + "triton_machine": 430, + "triton_service_group": 430, + "triton_snapshot": 430, + "triton_vlan": 430, + "ucloud_db_instance": 440, + "ucloud_disk": 436, + "ucloud_disk_attachment": 436, + "ucloud_eip": 437, + "ucloud_eip_association": 437, + "ucloud_instance": 436, + "ucloud_lb": 438, + "ucloud_lb_attachment": 438, + "ucloud_lb_listener": 438, + "ucloud_lb_rule": 438, + "ucloud_lb_ssl": 438, + "ucloud_lb_ssl_attachment": 438, + "ucloud_memcache_instance": 441, + "ucloud_redis_instance": 441, + "ucloud_security_group": 437, + "ucloud_subnet": 439, + "ucloud_vpc": 439, + "ucloud_vpc_peering_connection": 439, + "ultradns_dirpool": 297, + "ultradns_probe_http": 297, + "ultradns_probe_ping": 297, + "ultradns_record": 297, + "ultradns_tcpool": 297, + "var": 10001, + "vault_approle_auth_backend_login": 185, + "vault_approle_auth_backend_role": 185, + "vault_approle_auth_backend_role_secret_id": 185, + "vault_audit": 185, + "vault_auth_backend": 185, + "vault_aws_auth_backend_cert": 185, + "vault_aws_auth_backend_client": 185, + "vault_aws_auth_backend_identity_whitelist": 185, + "vault_aws_auth_backend_login": 185, + "vault_aws_auth_backend_role": 185, + "vault_aws_auth_backend_role_tag": 185, + "vault_aws_auth_backend_roletag_blacklist": 185, + "vault_aws_auth_backend_sts_role": 185, + "vault_aws_secret_backend": 185, + "vault_aws_secret_backend_role": 185, + "vault_azure_auth_backend_config": 185, + "vault_azure_auth_backend_role": 185, + "vault_cert_auth_backend_role": 185, + "vault_consul_secret_backend": 185, + "vault_database_secret_backend_connection": 185, + "vault_database_secret_backend_role": 185, + "vault_egp_policy": 185, + "vault_gcp_auth_backend": 185, + "vault_gcp_auth_backend_role": 185, + "vault_gcp_secret_backend": 185, + "vault_gcp_secret_roleset": 185, + "vault_generic_endpoint": 185, + "vault_generic_secret": 185, + "vault_github_auth_backend": 185, + "vault_github_team": 185, + "vault_github_user": 185, + "vault_identity_entity": 185, + "vault_identity_entity_alias": 185, + "vault_identity_group": 185, + "vault_identity_group_alias": 185, + "vault_jwt_auth_backend": 185, + "vault_jwt_auth_backend_role": 185, + "vault_kubernetes_auth_backend_config": 185, + "vault_kubernetes_auth_backend_role": 185, + "vault_ldap_auth_backend": 185, + "vault_ldap_auth_backend_group": 185, + "vault_ldap_auth_backend_user": 185, + "vault_mount": 185, + "vault_okta_auth_backend": 185, + "vault_okta_auth_backend_group": 185, + "vault_okta_auth_backend_user": 185, + "vault_pki_secret_backend": 185, + "vault_pki_secret_backend_cert": 185, + "vault_pki_secret_backend_config_ca": 185, + "vault_pki_secret_backend_config_urls": 185, + "vault_pki_secret_backend_intermediate_cert_request": 185, + "vault_pki_secret_backend_intermediate_set_signed": 185, + "vault_pki_secret_backend_role": 185, + "vault_pki_secret_backend_root_cert": 185, + "vault_pki_secret_backend_root_sign_intermediate": 185, + "vault_pki_secret_backend_sign": 185, + "vault_policy": 185, + "vault_rabbitmq_secret_backend": 185, + "vault_rabbitmq_secret_backend_role": 185, + "vault_rgp_policy": 185, + "vault_ssh_secret_backend_ca": 185, + "vault_ssh_secret_backend_role": 185, + "vault_token_auth_backend_role": 185, + "vcd_catalog": 399, + "vcd_catalog_item": 399, + "vcd_catalog_media": 399, + "vcd_dnat": 399, + "vcd_edgegateway_vpn": 399, + "vcd_external_network": 399, + "vcd_firewall_rules": 399, + "vcd_independent_disk": 399, + "vcd_inserted_media": 399, + "vcd_network": 399, + "vcd_network_direct": 399, + "vcd_network_isolated": 399, + "vcd_network_routed": 399, + "vcd_org": 399, + "vcd_org_vdc": 399, + "vcd_snat": 399, + "vcd_vapp": 399, + "vcd_vapp_network": 399, + "vcd_vapp_vm": 399, + "vdisk resource": 270, + "virtual_guest": 238, + "vra7_deployment": 409, + "vsphere_compute_cluster": 411, + "vsphere_compute_cluster_host_group": 411, + "vsphere_compute_cluster_vm_affinity_rule": 411, + "vsphere_compute_cluster_vm_anti_affinity_rule": 411, + "vsphere_compute_cluster_vm_dependency_rule": 411, + "vsphere_compute_cluster_vm_group": 411, + "vsphere_compute_cluster_vm_host_rule": 411, + "vsphere_custom_attribute": 412, + "vsphere_datacenter": 412, + "vsphere_datastore_cluster": 414, + "vsphere_datastore_cluster_vm_anti_affinity_rule": 414, + "vsphere_distributed_port_group": 413, + "vsphere_distributed_virtual_switch": 413, + "vsphere_dpm_host_override": 411, + "vsphere_drs_vm_override": 411, + "vsphere_file": 414, + "vsphere_folder": 412, + "vsphere_ha_vm_override": 411, + "vsphere_host_port_group": 413, + "vsphere_host_virtual_switch": 413, + "vsphere_license": 410, + "vsphere_nas_datastore": 414, + "vsphere_resource_pool": 411, + "vsphere_storage_drs_vm_override": 414, + "vsphere_tag": 412, + "vsphere_tag_category": 412, + "vsphere_vapp_container": 415, + "vsphere_vapp_entity": 415, + "vsphere_virtual_disk": 415, + "vsphere_virtual_machine": 415, + "vsphere_virtual_machine_snapshot": 415, + "vsphere_vmfs_datastore": 414, + "yandex_compute_disk": 299, + "yandex_compute_image": 299, + "yandex_compute_instance": 299, + "yandex_compute_snapshot": 299, + "yandex_iam_service_account": 300, + "yandex_iam_service_account_iam_binding": 300, + "yandex_iam_service_account_iam_member": 300, + "yandex_iam_service_account_iam_policy": 300, + "yandex_iam_service_account_static_access_key": 300, + "yandex_resourcemanager_cloud_iam_binding": 301, + "yandex_resourcemanager_cloud_iam_member": 301, + "yandex_resourcemanager_folder_iam_binding": 301, + "yandex_resourcemanager_folder_iam_member": 301, + "yandex_resourcemanager_folder_iam_policy": 301, + "yandex_vpc_network": 302, + "yandex_vpc_route_table": 302, + "yandex_vpc_subnet": 302 +} diff --git a/npm/src/resource-types.js b/npm/src/resource-types.js new file mode 100644 index 0000000..aad3dc4 --- /dev/null +++ b/npm/src/resource-types.js @@ -0,0 +1,24 @@ +export const resource_types = { + "ibm_account_": 500, + "ibm_app_": 501, + "ibm_org_": 502, + "ibm_service_instance_": 503, + "ibm_service_key_": 504, + "ibm_service_plan_": 505, + "ibm_space_": 506, + "ibm_cis_": 507, + "ibm_container_cluster_": 508, + "ibm_database_": 509, + "ibm_function_": 510, + + + + "ibm_is_security_": 600, + "ibm_is_lb_": 601, + "ibm_is_vpc_": 602, + "template_": 603, + "ibm_cos_": 604, + "ibm_kp_": 605, + "ibm_resource_": 606, + "ibm_iam_": 607, +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..0c3d818 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "28mm-blastradius", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "clean": "rm -rf node_modules package-lock.json && npm i", + "build": "webpack" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/nishubharti/blast-radius.git" + }, + "keywords": [ + "blastradius", + "terrafom", + "reasoning", + "graph", + "interactive", + "visualization" + ], + "author": "VishwaKumar Patil", + "license": "ISC", + "bugs": { + "url": "https://github.com/nishubharti/blast-radius/issues" + }, + "homepage": "https://github.com/nishubharti/blast-radius#readme", + "dependencies": { + "@fortawesome/fontawesome-free": "^5.13.0", + "d3": "^4.11.0", + "d3-tip": "^0.9.1", + "jquery": "^3.2.1", + "selectize": "^0.12.6", + "svg-pan-zoom": "^3.5.2" + }, + "devDependencies": { + "webpack": "^4.42.1", + "webpack-cli": "^3.3.11" + } +} diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..c5ac3ec --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,10 @@ +const path = require('path'); + +module.exports = { + mode: 'development', + entry: './index.js', + output: { + filename: 'bundle.js', + path: path.resolve(__dirname, 'npm/dist'), + }, +}; \ No newline at end of file From f85b7d0815c55b83ef039d50fcc4fa968ba84f7f Mon Sep 17 00:00:00 2001 From: nishubharti <32607124+nishubharti@users.noreply.github.com> Date: Thu, 17 Sep 2020 19:03:05 +0530 Subject: [PATCH 03/25] new version Blast radius 0.1.25.1 (#4) * added simple graph visualization * added blast-radius v0.1 Co-authored-by: nibhart1 <nibhart1@in.ibm.com> Co-authored-by: Nishu.Bharti1 <Nishu.Bharti1@ibm.com> --- README.md | 1 + bin/blast-radius | 35 +- blastradius/handlers/cost.py | 34 + blastradius/handlers/dot.py | 98 +- blastradius/handlers/policy.py | 31 + blastradius/server/server.py | 36 + blastradius/server/static/css/style.css | 3 + .../server/static/js/blast-radius-ext.js | 100 +- blastradius/server/templates/index.html | 28 +- npm/example/demo-1/demo-1.json | 2371 ++------------ npm/example/demo-1/demo-1.svg | 783 +---- npm/example/demo-1/demonew-1.svg | 757 ----- npm/example/demo-1/simple-demo-1.json | 659 ---- npm/example/demo-1/simple-demo-1.svg | 230 -- npm/example/demo-2/demo-2.json | 2799 ----------------- npm/example/demo-2/demo-2.svg | 669 ---- npm/example/demo-2/demonew-2.svg | 750 ----- npm/example/demo-2/simple-demo-2.json | 533 ++-- npm/example/demo-2/simple-demo-2.svg | 396 +-- npm/example/demo-3/demo-3.json | 1922 ----------- npm/example/demo-3/demo-3.svg | 669 ---- npm/example/demo-3/demonew-3.svg | 757 ----- npm/example/demo-3/simple-demo-3.json | 780 +++-- npm/example/demo-3/simple-demo-3.svg | 413 +-- npm/example/demo-4/demo-4.json | 339 -- npm/example/demo-4/demo-4.svg | 208 -- npm/example/demo-4/demonew-4.svg | 757 ----- npm/example/demo-4/simple-demo-4.json | 609 ++++ npm/example/demo-4/simple-demo-4.svg | 110 + npm/example/index.html | 7 +- npm/src/blast-radius.js | 101 +- setup.py | 2 +- 32 files changed, 2830 insertions(+), 14157 deletions(-) create mode 100644 blastradius/handlers/cost.py create mode 100644 blastradius/handlers/policy.py delete mode 100644 npm/example/demo-1/demonew-1.svg delete mode 100644 npm/example/demo-1/simple-demo-1.json delete mode 100644 npm/example/demo-1/simple-demo-1.svg delete mode 100644 npm/example/demo-2/demo-2.json delete mode 100644 npm/example/demo-2/demo-2.svg delete mode 100644 npm/example/demo-2/demonew-2.svg delete mode 100644 npm/example/demo-3/demo-3.json delete mode 100644 npm/example/demo-3/demo-3.svg delete mode 100644 npm/example/demo-3/demonew-3.svg delete mode 100644 npm/example/demo-4/demo-4.json delete mode 100644 npm/example/demo-4/demo-4.svg delete mode 100644 npm/example/demo-4/demonew-4.svg create mode 100644 npm/example/demo-4/simple-demo-4.json create mode 100644 npm/example/demo-4/simple-demo-4.svg diff --git a/README.md b/README.md index 6be4c34..027fe6b 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ For fastest way to get up and running with blast-radius is as follows: terraform show -json tfplan.binary > tfplan.json terraform apply ``` + for including cost and policy information into blast-radius cost.json and policy.json file need to be stored into the working directory. ```sh blast-radius --serve /path/to/terraform/directory diff --git a/bin/blast-radius b/bin/blast-radius index cc37c50..35b0bd0 100755 --- a/bin/blast-radius +++ b/bin/blast-radius @@ -17,14 +17,11 @@ from blastradius.handlers.plan import Plan from blastradius.handlers.apply import Apply from blastradius.handlers.terraform import Terraform from blastradius.server.server import app +from blastradius.handlers.cost import Cost +from blastradius.handlers.policy import Policy +from blastradius.server.server import simple_graph, run_tf_graph -def run_tf_graph(): - completed = subprocess.run(['terraform', 'graph'], stdout=subprocess.PIPE) - if completed.returncode != 0: - raise Exception('Execution error', completed.stderr) - return completed.stdout.decode('utf-8') - def main(): parser = parser = argparse.ArgumentParser(description='blast-radius: Interactive Terraform Graph Visualizations') @@ -36,12 +33,16 @@ def main(): output_group.add_argument('--dot', action='store_const', const=True, default=False, help='print the graphviz/dot representation of the Terraform graph') output_group.add_argument('--svg', action='store_const', const=True, default=False, help='print the svg representation of the Terraform graph') output_group.add_argument('--newsvg', action='store_const', const=True, default=False, help='print the modified svg representation of the Terraform graph') + output_group.add_argument('--simplesvg', action='store_const', const=True, default=False, help='print the simple svg of modified svg representation of the Terraform graph') output_group.add_argument('--serve', action='store_const', const=True, default=False, help='spins up a webserver with an interactive Terraform graph') parser.add_argument('--graph', type=str, help='`terraform graph` output (defaults to stdin)', default=sys.stdin) parser.add_argument('--planjson', type=str, help='`terraform plan json` output') parser.add_argument('--applyjson', type=str, help='`terraform graph` output (defaults to stdin)', default=sys.stdin) - + parser.add_argument('--costjson', type=str, help='`resource cost json` output') + parser.add_argument('--policyjson', type=str, help='`resource policy json` output') + + # options to limit, re-focus, and re-center presentation of larger graphs. constraint_group = parser.add_mutually_exclusive_group() constraint_group.add_argument('--module-depth', type=int, help='hide module details', required=False) @@ -52,6 +53,8 @@ def main(): parser.add_argument('--plan', type=str, help='terraform plan output', default=None) #parser.add_argument('--state', type=str, help='tfstate file', default=None) parser.add_argument('--apply', type=str, help='terraform apply log', default=None) + parser.add_argument('--cost', type=str, help='resource cost json', default=None) + parser.add_argument('--policy', type=str, help='resource policy json', default=None) args = parser.parse_args() @@ -70,11 +73,23 @@ def main(): apply = Apply(args.applyjson) print(apply.json()) - elif args.json or args.dot or args.svg or args.newsvg: + # argument for cost info + elif args.cost: + cost = Cost(args.costjson) + print(cost.json()) + + # argument for policy info + elif args.policy: + policy = Policy(args.policyjson) + print(policy.json()) + + elif args.json or args.dot or args.svg or args.newsvg or args.simplesvg: if args.graph is sys.stdin: dot = DotGraph('','', file_contents=sys.stdin.read()) elif args.newsvg: #for extended blasradius svg - dot = DotGraph('ext','', file_contents=run_tf_graph()) + dot = DotGraph('ext', args.graph) + elif args.simplesvg: #for simple blasradius svg + dot = DotGraph('ext','',file_contents=simple_graph()) else: dot = DotGraph('',args.graph) @@ -113,6 +128,8 @@ def main(): print(dot.svg()) elif args.newsvg: print(dot.svg()) + elif args.simplesvg: + print(dot.svg()) else: parser.print_help() diff --git a/blastradius/handlers/cost.py b/blastradius/handlers/cost.py new file mode 100644 index 0000000..12bee15 --- /dev/null +++ b/blastradius/handlers/cost.py @@ -0,0 +1,34 @@ +from __future__ import print_function + +from os import path +import json + + +class Cost(): + def __init__(self,filename=None): + self.resource_cost_info = [] + if filename == None: + if(path.exists("cost.json")): + with open("cost.json", 'r') as f: + data = json.load(f) + else: + data = "" + else: + with open(filename, 'r') as f: + data = json.load(f) + + if (data) : + temp_data = dict() + for (index, var) in data.items(): + temp_data[index] = var + + self.resource_cost_info.append(data) + + else: + self.resource_cost_info.append("not available") + + + def json(self): + my_cost_json = json.dumps(self.resource_cost_info,indent=4, sort_keys=True) + return my_cost_json + \ No newline at end of file diff --git a/blastradius/handlers/dot.py b/blastradius/handlers/dot.py index 4b9210e..7793170 100644 --- a/blastradius/handlers/dot.py +++ b/blastradius/handlers/dot.py @@ -21,6 +21,9 @@ from blastradius.util import OrderedSet from blastradius.handlers.plan import Plan from blastradius.handlers.apply import Apply +from blastradius.handlers.cost import Cost +from blastradius.handlers.policy import Policy + class DotGraph(Graph): @@ -33,7 +36,10 @@ def __init__(self,flag,filename, file_contents=None): self.plan = Plan() self.apply = Apply() self.flag = flag - + self.cost = Cost() + self.policy = Policy() + self.totalcost = "" + if file_contents: self.contents = file_contents else: @@ -67,10 +73,12 @@ def __init__(self,flag,filename, file_contents=None): #process data source: apply_data = None plan_data = None + policy_data = "no policy available" + cost_data = "no cost available" if ("not applied" in self.apply.apply_resource_info): apply_data = "not yet applied" plan_data = "data-source" - self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + self.nodes.append(DotNode(d['node'], plan_data, apply_data,"cost data to be displayed here","policy data to be displayed here",fmt=fmt )) break else: @@ -78,16 +86,21 @@ def __init__(self,flag,filename, file_contents=None): if i['type']+"."+i['name'] == res: apply_data = i plan_data = "data-source" - self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + self.nodes.append(DotNode(d['node'], plan_data, apply_data,"cost data to be displayed here","policy data to be displayed here",fmt=fmt )) break else: if type == "provider": apply_data = {} plan_data = {} - self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + policy_data = {} + cost_data = {} + self.nodes.append(DotNode(d['node'], plan_data, apply_data,"cost data to be displayed here","policy data to be displayed here",fmt=fmt )) else: apply_data = None plan_data = None + policy_data = "no policy available" + cost_data = "no cost available" + total_cost = None if ("not applied" in self.apply.apply_resource_info): apply_data = "not yet applied" else: @@ -101,7 +114,33 @@ def __init__(self,flag,filename, file_contents=None): if data[0] == res: plan_data = i break - self.nodes.append(DotNode(d['node'], plan_data, apply_data,fmt=fmt )) + + if ("not available" in self.policy.resource_policy_info): + policy_data = "no policy available" + + else: + for i in self.policy.resource_policy_info: + data = i["type"]+"."+i["name"] + if data == res: + policy_data = i + break + + if ("not available" in self.cost.resource_cost_info): + cost_data = "no cost available" + + else: + for i in range(len(self.cost.resource_cost_info)): + currency = self.cost.resource_cost_info[i]["currency"] + self.totalcost = str(self.cost.resource_cost_info[i]["totalcost"]) + " " +currency + for _, val in enumerate(self.cost.resource_cost_info[i]["Lineitem"]): + data = val["terraformItemId"]+"."+val["id"] + if data == res: + val["lineitemtotal"] = str(val["lineitemtotal"]) + " "+ currency + cost_data = val + break + + # self.totalcost = total_cost + self.nodes.append(DotNode(d['node'], plan_data, apply_data,cost_data,policy_data,fmt=fmt )) # terraform graph output doesn't always make explicit node declarations; # sometimes they're a side-effect of edge definitions. Capture them. @@ -109,12 +148,16 @@ def __init__(self,flag,filename, file_contents=None): if e.source not in [ n.label for n in self.nodes ]: plan_data = {} apply_data = {} - self.nodes.append(DotNode(e.source, plan_data,apply_data)) + policy_data = {} + cost_data = {} + self.nodes.append(DotNode(e.source, plan_data,apply_data,cost_data,policy_data)) if e.target not in [ n.label for n in self.nodes ]: plan_data = {} apply_data = {} - self.nodes.append(DotNode(e.target, plan_data,apply_data)) + policy_data = {} + cost_data = {} + self.nodes.append(DotNode(e.target, plan_data,apply_data,cost_data,policy_data)) self.stack('var') self.stack('output') @@ -123,6 +166,7 @@ def __init__(self,flag,filename, file_contents=None): for n in self.nodes: n.cluster = 'root' if not n.cluster else n.cluster + def get_node_by_name(self, label): '''return node by label (if exists) otherwise simple_name''' for n in self.nodes: @@ -143,14 +187,14 @@ def dot(self): 'returns a dot/graphviz representation of the graph (a string)' if self.flag == "ext": - return self.dot_template_ext.render({ 'nodes': self.nodes, 'edges': self.edges, 'clusters' : self.clusters, 'EdgeType' : EdgeType }) + return self.dot_template_ext.render({ 'nodes': self.nodes, 'edges': self.edges, 'clusters' : self.clusters, 'EdgeType' : EdgeType,'totalcost': self.totalcost }) else : return self.dot_template.render({ 'nodes': self.nodes, 'edges': self.edges, 'clusters' : self.clusters, 'EdgeType' : EdgeType }) def json(self): edges = [ dict(e) for e in self.edges ] nodes = [ dict(n) for n in self.nodes ] - return json.dumps({ 'nodes' : nodes, 'edges' : edges }, indent=4, sort_keys=True) + return json.dumps({ 'nodes' : nodes, 'edges' : edges,'totalcost' : self.totalcost }, indent=4, sort_keys=True) # # A handful of graph manipulations. These are hampered by the decision @@ -388,30 +432,42 @@ def focus(self, node): {% if node.type %} {% if node.type == 'var' or node.type == 'provider' or node.type == 'meta' or node.type == 'provider' or node.type == 'output'%} "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD></TR> + <TR><TD>{{node.type}}</TD></TR> <TR><TD>{{node.resource_name}}</TD></TR> + <TR><TD></TD></TR> </TABLE>>]; {% else %} "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD colspan="3">{{node.type}}</TD></TR> + <TR><TD colspan="3">{{node.resource_name}}</TD></TR> {% if node.plan.change %} {% if node.plan.change.actions[0] == "create" %} - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD><TD rowspan="2">+</TD><TD rowspan="2"></TD></TR> + + <TR><TD>state</TD><TD>+</TD><TD>apply</TD></TR> {% elif node.plan.change.actions[0] == "delete" and node.plan.change.actions[1] == "create"%} - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD><TD rowspan="2">-/+</TD><TD rowspan="2"></TD></TR> + <TR><TD>state</TD><TD>-/+</TD><TD></TD></TR> {% elif node.plan.change.actions[0] == "delete"%} - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD><TD rowspan="2">-</TD><TD rowspan="2"></TD></TR> + <TR><TD>state</TD><TD>-</TD><TD">apply</TD></TR> {% elif node.plan.change.actions[0] == "update"%} - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD><TD rowspan="2">#</TD><TD rowspan="2"></TD></TR> + <TR><TD>state</TD><TD>#</TD><TD>apply</TD></TR> {% else %} - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD><TD rowspan="2"></TD><TD rowspan="2"></TD></TR> + <TR><TD>state</TD><TD></TD><TD>apply</TD></TR> {% endif %} {% else %} - <TR><TD>{{node.type}}</TD><TD rowspan="2"></TD><TD rowspan="2"></TD><TD rowspan="2"></TD></TR> + <TR><TD>state</TD><TD></TD><TD></TD></TR> {% endif %} - <TR><TD>{{node.resource_name}}</TD></TR></TABLE>>]; + <TR><TD colspan="3">{{node.cost.lineitemtotal}}</TD></TR> + <TR><TD colspan="3">controls</TD></TR></TABLE>>]; {% endif %} {% else %} + {% if totalcost != "" %} + "{{node.label}}" [ shape=none, margin=0, id={{node.svg_id}} label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>{{node.label}}</TD></TR> + <TR><TD>{{totalcost}}</TD></TR> + </TABLE>>]; + {% else %} "{{node.label}}" [{{node.fmt}}] + {% endif %} {% endif %} {% endif %} {% endfor %} @@ -542,7 +598,7 @@ def __str__(self): class DotNode(Node): - def __init__(self, label, data,apply_data,fmt=None): + def __init__(self, label, plan_data,apply_data,cost_data,policy_data,fmt=None): self.label = DotNode._label_fixup(label) self.fmt = fmt if fmt else Format('') # graphviz formatting. @@ -555,14 +611,16 @@ def __init__(self, label, data,apply_data,fmt=None): self.module = DotNode._module(self.label) # for module groupings. 'root' or 'module.foo.module.bar' self.cluster = None # for stacked resources (usually var/output). self.collapsed = False - self.plan = data + self.plan = plan_data self.apply = apply_data + self.cost = cost_data + self.policy = policy_data self.fmt.add(id=self.svg_id, shape='box') self.modules = [ m for m in self.module.split('.') if m != 'module' ] def __iter__(self): - for key in {'label', 'simple_name', 'type', 'resource_name', 'group', 'svg_id', 'definition', 'cluster', 'module', 'modules', 'plan', 'apply'}: + for key in {'label', 'simple_name', 'type', 'resource_name', 'group', 'svg_id', 'definition', 'cluster', 'module', 'modules', 'plan', 'apply','cost','policy'}: yield (key, getattr(self, key)) # diff --git a/blastradius/handlers/policy.py b/blastradius/handlers/policy.py new file mode 100644 index 0000000..8181f12 --- /dev/null +++ b/blastradius/handlers/policy.py @@ -0,0 +1,31 @@ +import json +import os.path +from os import path + +class Policy(): + def __init__(self,filename=None): + self.resource_policy_info = [] + if filename == None: + if(path.exists("policy.json")): + with open("policy.json", 'r') as f: + data = json.load(f) + else: + data = "" + else: + with open(filename, 'r') as f: + data = json.load(f) + + if (data) : + for index, var in enumerate(data["resources"]): + temp_data = dict() + temp_data = var + self.resource_policy_info.append(temp_data) + + else: + self.resource_policy_info.append("not available") + + + def json(self): + my_policy_json = json.dumps(self.resource_policy_info,indent=4, sort_keys=True) + return my_policy_json + \ No newline at end of file diff --git a/blastradius/server/server.py b/blastradius/server/server.py index 7b6b463..46a4fea 100644 --- a/blastradius/server/server.py +++ b/blastradius/server/server.py @@ -3,6 +3,7 @@ import subprocess import itertools import json +import re # 3rd-party libraries from flask import Flask @@ -67,6 +68,39 @@ def graphnew_svg(): return dot.svg() +@app.route('/graphsimple.svg') +def graphsimple_svg(): + Graph.reset_counters() + dot = DotGraph('ext','',file_contents=simple_graph()) + + module_depth = request.args.get('module_depth', default=None, type=int) + refocus = request.args.get('refocus', default=None, type=str) + + if module_depth is not None and module_depth >= 0: + dot.set_module_depth(module_depth) + + if refocus is not None: + node = dot.get_node_by_name(refocus) + if node: + dot.center(node) + + return dot.svg() + + +def simple_graph(): + file_contents=run_tf_graph() + new_file_content = '' + for line in file_contents.splitlines(): + if re.search("var",line) or re.search("provider",line) or re.search("meta.count-boundary",line) or re.search("output",line): + if re.search("meta.count-boundary",line) and not (re.search("output",line) or re.search("var",line) or re.search('\[root\] root',line)): + new_line = line.replace("meta.count-boundary (EachMode fixup)","root") + new_file_content+=new_line +'\n' + else: + new_file_content+=line +'\n' + + + return new_file_content + @app.route('/graph.json') def graph_json(): @@ -88,6 +122,8 @@ def graph_json(): return dot.json() + + def run_tf_graph(): completed = subprocess.run(['terraform', 'graph'], stdout=subprocess.PIPE) if completed.returncode != 0: diff --git a/blastradius/server/static/css/style.css b/blastradius/server/static/css/style.css index c3dc760..d6fdb6d 100644 --- a/blastradius/server/static/css/style.css +++ b/blastradius/server/static/css/style.css @@ -206,3 +206,6 @@ border: 1px solid black; .sidenav a {font-size: 18px;} } + + + diff --git a/blastradius/server/static/js/blast-radius-ext.js b/blastradius/server/static/js/blast-radius-ext.js index 13f47ff..e569bb2 100644 --- a/blastradius/server/static/js/blast-radius-ext.js +++ b/blastradius/server/static/js/blast-radius-ext.js @@ -180,6 +180,26 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { return ttip; } + var render_cost = function(d) { + var cost_title = "cost info" + var ttip = ''; + ttip += title_html(d); + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + cost_title + '</span><br><br>'+(d.cost.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.cost, replacer, 2) + "</p><br>"+ '<hr style="background-color:black"/>') ; + ttip += child_html(d); + + + return ttip; + } + + var render_policy = function(d) { + var policy_title = "policy info" + var ttip = ''; + ttip += title_html(d); + ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + policy_title + '</span><br><br>'+(d.policy.length == 0 ? '' : "<p class='explain'>" + JSON.stringify(d.policy, replacer, 2) + "</p><br>"+ '<hr style="background-color:black"/>'); + ttip += child_html(d); + return ttip; + } + var render_apply = function(d) { var apply_title = "apply info" var ttip = ''; @@ -187,13 +207,11 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { if (d.apply == "not yet applied" ) { ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>'+("<p class='explain'>" + "not yet applied" + "</p><br>"+ '<hr style="background-color:black"/>'); - } else { if( d.apply == null || d.apply.instances[0] == null) { ttip += '<hr style="background-color:black"/><br><span class="title" style="background:' + color("#ffbf00") + ';">' + apply_title + '</span><br><br>'+("<p class='explain'>" + "resource apply failed" + "</p><br>"+ '<hr style="background-color:black"/>'); - } else { @@ -201,8 +219,6 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { } } ttip += child_html(d); - - return ttip; } @@ -427,6 +443,22 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { $('div.test').html(renderInfo); } + + var cost_click = function(d) { + openNav() + + var renderInfo = render_cost(d); + $('div.test').html(renderInfo); + + } + + var policy_click = function(d) { + openNav() + + var renderInfo = render_policy(d); + $('div.test').html(renderInfo); + + } function openNav() { document.getElementById("mySidenav").style.width = "350px"; @@ -476,6 +508,8 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { }) + + node.attr('fill', function (d) { return color(d.group); }) .select('polygon:nth-of-type(1)') .on('click', node_mousedown) @@ -488,8 +522,12 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { })); - node.select('polygon:nth-of-type(2)') - .on('click',tfstate_click) + node.select('polygon:nth-of-type(3)') + .on('click',(function (d) { + + return tfstate_click(d); + + })) .style('fill', (function (d) { if (d) @@ -501,7 +539,7 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { node.attr('fill', function (d) { return color(d.group); }) - .select('polygon:nth-child(3n+4)') + .select('polygon:nth-of-type(4)') .on('click',(function (d) { if (d.type == "var" || d.type == "provider" || d.type == "meta" || d.type == "output") @@ -527,7 +565,7 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { })); - node.select('polygon:nth-of-type(4)') + node.select('polygon:nth-of-type(5)') .on('click',apply_click) .style('fill', (function (d) { if (d) @@ -536,7 +574,7 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { { return "#808080"; } - else if(d.apply == null || d.apply.instances[0] == null ) + else if(d.apply == null || d.apply.instances == null ) { return "#ff0000"; } @@ -548,6 +586,48 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { return '#000'; })); + + node.select('polygon:nth-of-type(6)') + .on('click',cost_click) + .style('fill', (function (d) { + if (d) + + if(d.cost == "no cost available" || d.cost == null) + { + return "#808080"; + } + else{ + return "#fff"; + } + + else + return '#000'; + })); + + + node.select('polygon:nth-of-type(7)') + + .on('click',policy_click) + .style('fill', (function (d) { + if (d){ + if(d.policy == "no policy available" || d.policy == null) + { + return "#808080"; + } + else if(d.policy != null && d.policy.decision == "failed" ) + { + return "#ff0000"; + } + else{ + return "#00ff40"; + } + + } + else + return '#000'; + })); + + svg.selectAll('polygon') .each(function(d, i) { if (d != undefined) @@ -709,7 +789,7 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { // without this, selecting an item with <enter> will submit the form // and force a page refresh. not the desired behavior. - // $(selector + '-search-form').submit(function(){return false;}); + $(selector + '-search-form').submit(function(){return false;}); } // end if(interactive) }); // end json success callback diff --git a/blastradius/server/templates/index.html b/blastradius/server/templates/index.html index 108a20b..fbbbda0 100644 --- a/blastradius/server/templates/index.html +++ b/blastradius/server/templates/index.html @@ -3,6 +3,7 @@ <head> <title>Blast Radius (Terraform Graph Tools) + @@ -142,6 +143,15 @@ Blast-radius-extended + + +
  2. @@ -167,17 +177,17 @@
    - not applied + action not applied
    - apply failed + failed
    - apply success + success - + @@ -195,6 +205,7 @@ var id1 = document.getElementById("graph-radio"); var id2 = document.getElementById("graph-radio-new"); + var id3 = document.getElementById("graph-radio-simple"); (function () { // your page initialization code here @@ -205,11 +216,15 @@ else if (id2.checked) { blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); } + else if (id3.checked) { + blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); + } })(); function Showgraph() { var id1 = document.getElementById("graph-radio"); var id2 = document.getElementById("graph-radio-new"); + var id3 = document.getElementById("graph-radio-simple"); if (id1.checked) { blastradius('#graph', '/graph.svg', '/graph.json', br_state); @@ -217,10 +232,15 @@ else if (id2.checked) { blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); } + else if (id3.checked) { + blastradiusnew('#graph', '/graphsimple.svg', '/graph.json', br_state); + } } function closeNav() { document.getElementById("mySidenav").style.width = "0"; } + + \ No newline at end of file diff --git a/npm/example/demo-1/demo-1.json b/npm/example/demo-1/demo-1.json index 607e81a..c509b3d 100644 --- a/npm/example/demo-1/demo-1.json +++ b/npm/example/demo-1/demo-1.json @@ -2,2183 +2,438 @@ "edges": [ { "edge_type": 1, - "source": "[root] data.template_cloudinit_config.cloud-init-apptier", + "source": "[root] ibm_cis.web_domain", "svg_id": "edge_0", - "target": "[root] provider.template" + "target": "[root] ibm_resource_group.web_group" }, { "edge_type": 1, - "source": "[root] ibm_is_floating_ip.floatingip1", + "source": "[root] ibm_cis_domain.web_domain", "svg_id": "edge_1", - "target": "[root] ibm_is_instance.instance1" + "target": "[root] ibm_cis.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_is_floating_ip.floatingip2", + "source": "[root] ibm_cis_domain.web_domain", "svg_id": "edge_2", - "target": "[root] ibm_is_instance.instance2" + "target": "[root] var.domain" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", + "source": "[root] ibm_cis_domain_settings.web_domain", "svg_id": "edge_3", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + "target": "[root] ibm_cis_domain.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", + "source": "[root] ibm_resource_group.web_group", "svg_id": "edge_4", - "target": "[root] ibm_is_ssh_key.ssh1" + "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", + "source": "[root] ibm_resource_group.web_group", "svg_id": "edge_5", - "target": "[root] ibm_is_subnet.subnet1" + "target": "[root] var.resource_group" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_6", - "target": "[root] var.image" + "target": "[root] ibm_cis_domain_settings.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_7", - "target": "[root] var.profile" + "target": "[root] output.web_dns_name" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_8", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + "target": "[root] var.datacenter1" }, { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", + "edge_type": 2, + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_9", - "target": "[root] ibm_is_ssh_key.ssh1" + "target": "[root] var.datacenter2" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", + "source": "[root] output.web_dns_name", "svg_id": "edge_10", - "target": "[root] ibm_is_subnet.subnet2" + "target": "[root] var.dns_name" }, { "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", + "source": "[root] output.web_dns_name", "svg_id": "edge_11", - "target": "[root] var.image" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_12", - "target": "[root] var.profile" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb.lb1", - "svg_id": "edge_13", - "target": "[root] ibm_is_subnet.subnet1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb.lb1", - "svg_id": "edge_14", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_listener.lb1-listener", - "svg_id": "edge_15", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool.lb1-pool", - "svg_id": "edge_16", - "target": "[root] ibm_is_lb.lb1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "edge_17", - "target": "[root] ibm_is_instance.instance1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "edge_18", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "edge_19", - "target": "[root] ibm_is_instance.instance2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "edge_20", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "edge_21", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "edge_22", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "edge_23", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "edge_24", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_ssh_key.ssh1", - "svg_id": "edge_25", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_ssh_key.ssh1", - "svg_id": "edge_26", - "target": "[root] var.ssh_public_key" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet1", - "svg_id": "edge_27", - "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet2", - "svg_id": "edge_28", - "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_29", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_30", - "target": "[root] var.vpc_name" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_31", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_32", - "target": "[root] var.zone1" - }, - { - "edge_type": 2, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_33", - "target": "[root] var.zone1_cidr" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_34", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_35", - "target": "[root] var.zone2" - }, - { - "edge_type": 2, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_36", - "target": "[root] var.zone2_cidr" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_37", - "target": "[root] ibm_is_lb_listener.lb1-listener" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_38", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_39", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_40", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_41", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_42", - "target": "[root] output.FloatingIP-1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_43", - "target": "[root] output.FloatingIP-2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_44", - "target": "[root] output.LB-Hostname" - }, - { - "edge_type": 1, - "source": "[root] output.FloatingIP-1", - "svg_id": "edge_45", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] output.FloatingIP-2", - "svg_id": "edge_46", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] output.LB-Hostname", - "svg_id": "edge_47", - "target": "[root] ibm_is_lb.lb1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_48", - "target": "[root] ibm_is_lb_listener.lb1-listener" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_49", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_50", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_51", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" + "target": "[root] var.domain" }, { "edge_type": 1, "source": "[root] provider.ibm (close)", - "svg_id": "edge_52", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm", - "svg_id": "edge_53", - "target": "[root] var.ibmcloud_region" - }, - { - "edge_type": 1, - "source": "[root] provider.template (close)", - "svg_id": "edge_54", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" + "svg_id": "edge_12", + "target": "[root] ibm_cis_domain_settings.web_domain" }, { "edge_type": 1, "source": "[root] root", - "svg_id": "edge_55", + "svg_id": "edge_13", "target": "[root] meta.count-boundary (EachMode fixup)" }, { "edge_type": 1, "source": "[root] root", - "svg_id": "edge_56", + "svg_id": "edge_14", "target": "[root] provider.ibm (close)" }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_57", - "target": "[root] provider.template (close)" - }, - { - "edge_type": 3, - "source": "[root] var.zone1", - "svg_id": "edge_58", - "target": "[root] var.zone1_cidr" - }, { "edge_type": 3, - "source": "[root] var.zone2", - "svg_id": "edge_59", - "target": "[root] var.zone2_cidr" + "source": "[root] var.datacenter1", + "svg_id": "edge_15", + "target": "[root] var.datacenter2" } ], "nodes": [ { - "apply": { - "instances": [ - { - "attributes": { - "base64_encode": false, - "gzip": false, - "id": "708834281", - "part": [ - { - "content": "#cloud-config\npackages:\n - nginx\n\n", - "content_type": "", - "filename": "", - "merge_type": "" - } - ], - "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" - }, - "schema_version": 0 - } - ], - "mode": "data", - "name": "cloud-init-apptier", - "provider": "provider.template", - "type": "template_cloudinit_config" - }, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] data.template_cloudinit_config.cloud-init-apptier", - "module": "root", - "modules": [ - "root" - ], - "plan": "data-source", - "resource_name": "cloud-init-apptier", - "simple_name": "data.template_cloudinit_config.cloud-init-apptier", - "svg_id": "node_0", - "type": "template_cloudinit_config" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "address": "52.116.132.120", - "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "name": "fip4", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip4", - "resource_status": "available", - "status": "available", - "target": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", - "timeouts": null, - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_instance.instance1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "floatingip1", - "provider": "provider.ibm", - "type": "ibm_is_floating_ip" - }, - "cluster": "root", - "definition": { - "name": "fip4", - "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" - }, - "group": 20000, - "label": "[root] ibm_is_floating_ip.floatingip1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_floating_ip.floatingip1", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "fip1", - "timeouts": null - }, - "after_unknown": { - "address": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "target": true, - "zone": true - }, - "before": null - }, - "mode": "managed", - "name": "floatingip1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_floating_ip", - "values": { - "name": "fip1", - "timeouts": null - } - }, - "resource_name": "floatingip1", - "simple_name": "ibm_is_floating_ip.floatingip1", - "svg_id": "node_1", - "type": "ibm_is_floating_ip" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "address": "169.47.92.133", - "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "name": "fip5", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip5", - "resource_status": "available", - "status": "available", - "target": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", - "timeouts": null, - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_instance.instance2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "floatingip2", - "provider": "provider.ibm", - "type": "ibm_is_floating_ip" - }, - "cluster": "root", - "definition": { - "name": "fip5", - "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" - }, - "group": 20000, - "label": "[root] ibm_is_floating_ip.floatingip2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_floating_ip.floatingip2", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "fip2", - "timeouts": null - }, - "after_unknown": { - "address": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "target": true, - "zone": true - }, - "before": null - }, - "mode": "managed", - "name": "floatingip2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_floating_ip", - "values": { - "name": "fip2", - "timeouts": null - } - }, - "resource_name": "floatingip2", - "simple_name": "ibm_is_floating_ip.floatingip2", - "svg_id": "node_2", - "type": "ibm_is_floating_ip" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "boot_volume": [ - { - "encryption": "", - "iops": 3000, - "name": "volume-attachment", - "profile": "general-purpose", - "size": 100 - } - ], - "generation": null, - "gpu": [], - "id": "0717_c94d2de2-9ae0-43ba-854a-50ce878742da", - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "memory": 4, - "name": "instance4", - "network_interfaces": [], - "primary_network_interface": [ - { - "id": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", - "name": "promotion-proton-semicolon-taking-unworldly-washout", - "port_speed": 0, - "primary_ipv4_address": "172.16.1.5", - "security_groups": [ - "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" - ], - "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" - } - ], - "profile": "cx2-2x4", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::instance:0717_c94d2de2-9ae0-43ba-854a-50ce878742da", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "instance4", - "resource_status": "running", - "status": "running", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "vcpu": [ - { - "architecture": "amd64", - "count": 2 - } - ], - "volume_attachments": [ - { - "id": "0717-8c414447-bdb1-40ec-9d2c-07c3505acc75", - "name": "volume-attachment", - "volume_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-4966cffa-6483-11ea-97f2-feff0b334b12", - "volume_id": "r006-4966cffa-6483-11ea-97f2-feff0b334b12", - "volume_name": "living-unrated-jawed-crummy-smuggling-mankind" - } - ], - "volumes": [], - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet1", - "ibm_is_vpc.vpc1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "instance1", - "provider": "provider.ibm", - "type": "ibm_is_instance" - }, - "cluster": "root", - "definition": { - "image": "${var.image}", - "keys": [ - "${ibm_is_ssh_key.ssh1.id}" - ], - "name": "instance4", - "primary_network_interface": { - "subnet": "${ibm_is_subnet.subnet1.id}" - }, - "profile": "${var.profile}", - "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_instance.instance1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_instance.instance1", - "change": { - "actions": [ - "create" - ], - "after": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance1", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-1" - }, - "after_unknown": { - "boot_volume": true, - "gpu": true, - "id": true, - "keys": true, - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true, - "subnet": true - } - ], - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vcpu": true, - "volume_attachments": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "instance1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_instance", - "values": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance1", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-1" - } - }, - "resource_name": "instance1", - "simple_name": "ibm_is_instance.instance1", - "svg_id": "node_3", - "type": "ibm_is_instance" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "boot_volume": [ - { - "encryption": "", - "iops": 3000, - "name": "volume-attachment", - "profile": "general-purpose", - "size": 100 - } - ], - "generation": null, - "gpu": [], - "id": "0727_ce10c7f4-6795-4b79-ae26-49b1f8cbd024", - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "memory": 4, - "name": "instance5", - "network_interfaces": [], - "primary_network_interface": [ - { - "id": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", - "name": "penny-collector-bling-scurvy-ravishing-gradation", - "port_speed": 0, - "primary_ipv4_address": "172.16.2.5", - "security_groups": [ - "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" - ], - "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - } - ], - "profile": "cx2-2x4", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::instance:0727_ce10c7f4-6795-4b79-ae26-49b1f8cbd024", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "instance5", - "resource_status": "running", - "status": "running", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "vcpu": [ - { - "architecture": "amd64", - "count": 2 - } - ], - "volume_attachments": [ - { - "id": "0727-3a8e8f62-ba60-4d30-8296-9f921228782f", - "name": "volume-attachment", - "volume_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-49596fbb-6483-11ea-983f-feff0b0a4b07", - "volume_id": "r006-49596fbb-6483-11ea-983f-feff0b0a4b07", - "volume_name": "humorist-gratify-unfounded-scale-renter-strangely" - } - ], - "volumes": [], - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "instance2", - "provider": "provider.ibm", - "type": "ibm_is_instance" - }, - "cluster": "root", - "definition": { - "image": "${var.image}", - "keys": [ - "${ibm_is_ssh_key.ssh1.id}" - ], - "name": "instance5", - "primary_network_interface": { - "subnet": "${ibm_is_subnet.subnet2.id}" - }, - "profile": "${var.profile}", - "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_instance.instance2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_instance.instance2", - "change": { - "actions": [ - "create" - ], - "after": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance2", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-2" - }, - "after_unknown": { - "boot_volume": true, - "gpu": true, - "id": true, - "keys": true, - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true, - "subnet": true - } - ], - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vcpu": true, - "volume_attachments": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "instance2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_instance", - "values": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance2", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-2" - } - }, - "resource_name": "instance2", - "simple_name": "ibm_is_instance.instance2", - "svg_id": "node_4", - "type": "ibm_is_instance" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "hostname": "f8983743-us-south.lb.appdomain.cloud", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb", - "operating_status": "online", - "private_ips": [ - "172.16.1.4", - "172.16.2.4" - ], - "public_ips": [ - "52.116.136.89", - "52.116.200.44" - ], - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3-lb", - "status": "active", - "subnets": [ - "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - ], - "timeouts": null, - "type": "public" - }, - "dependencies": [ - "ibm_is_subnet.subnet1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1", - "provider": "provider.ibm", - "type": "ibm_is_lb" - }, - "cluster": "root", - "definition": { - "name": "${var.vpc_name}-lb", - "subnets": [ - "${ibm_is_subnet.subnet1.id}", - "${ibm_is_subnet.subnet2.id}" - ] - }, - "group": 20000, - "label": "[root] ibm_is_lb.lb1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb.lb1", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "vpc-fs2020-lab-lb", - "timeouts": null, - "type": "public" - }, - "after_unknown": { - "hostname": true, - "id": true, - "operating_status": true, - "private_ips": true, - "public_ips": true, - "resource_controller_url": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "status": true, - "subnets": true - }, - "before": null - }, - "mode": "managed", - "name": "lb1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb", - "values": { - "name": "vpc-fs2020-lab-lb", - "timeouts": null, - "type": "public" - } - }, - "resource_name": "lb1", - "simple_name": "ibm_is_lb.lb1", - "svg_id": "node_5", - "type": "ibm_is_lb" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "certificate_instance": null, - "connection_limit": 0, - "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "port": 80, - "protocol": "http", - "status": "active", - "timeouts": null - }, - "dependencies": [ - "ibm_is_lb.lb1", - "ibm_is_lb_pool.lb1-pool", - "ibm_is_subnet.subnet1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-listener", - "provider": "provider.ibm", - "type": "ibm_is_lb_listener" - }, - "cluster": "root", - "definition": { - "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", - "lb": "${ibm_is_lb.lb1.id}", - "port": "80", - "protocol": "http" - }, - "group": 20000, - "label": "[root] ibm_is_lb_listener.lb1-listener", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_listener.lb1-listener", - "change": { - "actions": [ - "create" - ], - "after": { - "certificate_instance": null, - "connection_limit": null, - "port": 80, - "protocol": "http", - "timeouts": null - }, - "after_unknown": { - "default_pool": true, - "id": true, - "lb": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "lb1-listener", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_listener", - "values": { - "certificate_instance": null, - "connection_limit": null, - "port": 80, - "protocol": "http", - "timeouts": null - } - }, - "resource_name": "lb1-listener", - "simple_name": "ibm_is_lb_listener.lb1-listener", - "svg_id": "node_6", - "type": "ibm_is_lb_listener" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_port": 0, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "provisioning_status": "active", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - }, - "dependencies": [ - "ibm_is_lb.lb1", - "ibm_is_subnet.subnet1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-pool", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool" - }, - "cluster": "root", - "definition": { - "algorithm": "round_robin", - "health_delay": "5", - "health_monitor_url": "/", - "health_retries": "2", - "health_timeout": "2", - "health_type": "http", - "lb": "${ibm_is_lb.lb1.id}", - "name": "${var.vpc_name}-lb1-pool", - "protocol": "http" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool.lb1-pool", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool.lb1-pool", - "change": { - "actions": [ - "create" - ], - "after": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "name": "vpc-fs2020-lab-lb1-pool", - "protocol": "http", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - }, - "after_unknown": { - "health_monitor_port": true, - "id": true, - "lb": true, - "provisioning_status": true - }, - "before": null - }, - "mode": "managed", - "name": "lb1-pool", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool", - "values": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "name": "vpc-fs2020-lab-lb1-pool", - "protocol": "http", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - } - }, - "resource_name": "lb1-pool", - "simple_name": "ibm_is_lb_pool.lb1-pool", - "svg_id": "node_7", - "type": "ibm_is_lb_pool" - }, - { - "apply": { - "each": "list", - "instances": [ - { - "attributes": { - "health": "ok", - "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "provisioning_status": "active", - "target_address": "172.16.1.5", - "timeouts": null, - "weight": 50 - }, - "dependencies": [ - "ibm_is_instance.instance1", - "ibm_is_lb.lb1", - "ibm_is_lb_pool.lb1-pool" - ], - "index_key": 0, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-pool-member1", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool_member" - }, - "cluster": "root", - "definition": { - "count": 1, - "lb": "${ibm_is_lb.lb1.id}", - "pool": "${ibm_is_lb_pool.lb1-pool.id}", - "port": "80", - "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", - "change": { - "actions": [ - "create" - ], - "after": { - "port": 80, - "timeouts": null - }, - "after_unknown": { - "health": true, - "href": true, - "id": true, - "lb": true, - "pool": true, - "provisioning_status": true, - "target_address": true, - "weight": true - }, - "before": null - }, - "index": 0, - "mode": "managed", - "name": "lb1-pool-member1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool_member", - "values": { - "port": 80, - "timeouts": null - } - }, - "resource_name": "lb1-pool-member1", - "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "node_8", - "type": "ibm_is_lb_pool_member" - }, - { - "apply": { - "each": "list", - "instances": [ - { - "attributes": { - "health": "ok", - "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-81ceccac-212d-491e-b386-d0ad57f53be7", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-81ceccac-212d-491e-b386-d0ad57f53be7", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "provisioning_status": "active", - "target_address": "172.16.2.5", - "timeouts": null, - "weight": 50 - }, - "dependencies": [ - "ibm_is_instance.instance2", - "ibm_is_lb.lb1", - "ibm_is_lb_pool.lb1-pool" - ], - "index_key": 0, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-pool-member2", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool_member" - }, - "cluster": "root", - "definition": { - "count": 1, - "lb": "${ibm_is_lb.lb1.id}", - "pool": "${ibm_is_lb_pool.lb1-pool.id}", - "port": "80", - "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", - "change": { - "actions": [ - "create" - ], - "after": { - "port": 80, - "timeouts": null - }, - "after_unknown": { - "health": true, - "href": true, - "id": true, - "lb": true, - "pool": true, - "provisioning_status": true, - "target_address": true, - "weight": true - }, - "before": null - }, - "index": 0, - "mode": "managed", - "name": "lb1-pool-member2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool_member", - "values": { - "port": 80, - "timeouts": null - } - }, - "resource_name": "lb1-pool-member2", - "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "node_9", - "type": "ibm_is_lb_pool_member" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - }, - "dependencies": [ - "ibm_is_floating_ip.floatingip1", - "ibm_is_floating_ip.floatingip2", - "ibm_is_instance.instance1", - "ibm_is_instance.instance2", - "ibm_is_vpc.vpc1" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "sg1_tcp_rule_22", - "provider": "provider.ibm", - "type": "ibm_is_security_group_rule" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_floating_ip.floatingip1}", - "${ibm_is_floating_ip.floatingip2}" - ], - "direction": "inbound", - "group": "${ibm_is_vpc.vpc1.default_security_group}", - "remote": "0.0.0.0/0", - "tcp": { - "port_max": "22", - "port_min": "22" - } - }, - "group": 20000, - "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", - "change": { - "actions": [ - "create" - ], - "after": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - }, - "after_unknown": { - "group": true, - "icmp": [], - "id": true, - "rule_id": true, - "tcp": [ - {} - ], - "udp": [] - }, - "before": null - }, - "mode": "managed", - "name": "sg1_tcp_rule_22", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_security_group_rule", - "values": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - } - }, - "resource_name": "sg1_tcp_rule_22", - "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "node_10", - "type": "ibm_is_security_group_rule" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - }, - "dependencies": [ - "ibm_is_floating_ip.floatingip1", - "ibm_is_floating_ip.floatingip2", - "ibm_is_instance.instance1", - "ibm_is_instance.instance2", - "ibm_is_vpc.vpc1" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "sg1_tcp_rule_80", - "provider": "provider.ibm", - "type": "ibm_is_security_group_rule" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_floating_ip.floatingip1}", - "${ibm_is_floating_ip.floatingip2}" - ], - "direction": "inbound", - "group": "${ibm_is_vpc.vpc1.default_security_group}", - "remote": "0.0.0.0/0", - "tcp": { - "port_max": "80", - "port_min": "80" - } - }, - "group": 20000, - "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", - "change": { - "actions": [ - "create" - ], - "after": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - }, - "after_unknown": { - "group": true, - "icmp": [], - "id": true, - "rule_id": true, - "tcp": [ - {} - ], - "udp": [] - }, - "before": null - }, - "mode": "managed", - "name": "sg1_tcp_rule_80", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_security_group_rule", - "values": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - } - }, - "resource_name": "sg1_tcp_rule_80", - "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "node_11", - "type": "ibm_is_security_group_rule" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", - "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "length": 4096, - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "ssh10", - "type": "rsa" - }, - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "ssh1", - "provider": "provider.ibm", - "type": "ibm_is_ssh_key" - }, + "apply": null, "cluster": "root", + "cost": "no cost available", "definition": { - "name": "ssh10", - "public_key": "${var.ssh_public_key}" + "location": "global", + "name": "web_domain", + "plan": "standard", + "resource_group_id": "${ibm_resource_group.web_group.id}" }, "group": 20000, - "label": "[root] ibm_is_ssh_key.ssh1", + "label": "[root] ibm_cis.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_ssh_key.ssh1", + "address": "ibm_cis.web_domain", "change": { "actions": [ "create" ], "after": { - "name": "ssh1", - "public_key": "" + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null }, "after_unknown": { - "fingerprint": true, + "guid": true, "id": true, - "length": true, "resource_controller_url": true, "resource_crn": true, - "resource_group": true, + "resource_group_id": true, "resource_group_name": true, "resource_name": true, - "type": true + "resource_status": true, + "service": true, + "status": true }, "before": null }, "mode": "managed", - "name": "ssh1", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_ssh_key", + "type": "ibm_cis", "values": { - "name": "ssh1", - "public_key": "" + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null } }, - "resource_name": "ssh1", - "simple_name": "ibm_is_ssh_key.ssh1", - "svg_id": "node_12", - "type": "ibm_is_ssh_key" + "policy": "no policy available", + "resource_name": "web_domain", + "simple_name": "ibm_cis.web_domain", + "svg_id": "node_0", + "type": "ibm_cis" }, { "apply": { - "instances": [ - { - "attributes": { - "available_ipv4_address_count": null, - "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "ipv6_cidr_block": "", - "name": "subnet1", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet1", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], + "instances": [], "mode": "managed", - "name": "subnet1", + "name": "web_domain", "provider": "provider.ibm", - "type": "ibm_is_subnet" + "type": "ibm_cis_domain" }, "cluster": "root", + "cost": "no cost available", "definition": { - "depends_on": [ - "${ibm_is_vpc_address_prefix.vpc-ap1}" - ], - "ipv4_cidr_block": "${var.zone1_cidr}", - "name": "subnet1", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" + "cis_id": "${ibm_cis.web_domain.id}", + "domain": "${var.domain}" }, "group": 20000, - "label": "[root] ibm_is_subnet.subnet1", + "label": "[root] ibm_cis_domain.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_subnet.subnet1", + "address": "ibm_cis_domain.web_domain", "change": { "actions": [ "create" ], "after": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "name": "subnet1", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-1" + "domain": "example.com" }, "after_unknown": { - "available_ipv4_address_count": true, + "cis_id": true, "id": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "total_ipv4_address_count": true, - "vpc": true + "name_servers": true, + "original_name_servers": true, + "paused": true, + "status": true }, "before": null }, "mode": "managed", - "name": "subnet1", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_subnet", + "type": "ibm_cis_domain", "values": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "name": "subnet1", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-1" + "domain": "example.com" } }, - "resource_name": "subnet1", - "simple_name": "ibm_is_subnet.subnet1", - "svg_id": "node_13", - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [ + "policy": { + "decision": "pass", + "name": "web_domain", + "policies": [ { - "attributes": { - "available_ipv4_address_count": null, - "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "ipv6_cidr_block": "", - "name": "subnet2", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet2", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap2" + "capsule": "SecurityCapsule", + "control": "SecurityControl", + "rules": [ + "ibm_cis_domain_settings" ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 + "severity": "" + }, + { + "capsule": "ConfigCapsule", + "control": "ConfigurationControl", + "rules": [ + "too_many_admins", + "too_many_managers" + ], + "severity": "" } ], - "mode": "managed", - "name": "subnet2", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_vpc_address_prefix.vpc-ap2}" - ], - "ipv4_cidr_block": "${var.zone2_cidr}", - "name": "subnet2", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet2", - "change": { - "actions": [ - "create" - ], - "after": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "name": "subnet2", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-2" - }, - "after_unknown": { - "available_ipv4_address_count": true, - "id": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "total_ipv4_address_count": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "subnet2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "name": "subnet2", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-2" - } + "type": "ibm_cis_domain" }, - "resource_name": "subnet2", - "simple_name": "ibm_is_subnet.subnet2", - "svg_id": "node_14", - "type": "ibm_is_subnet" + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain.web_domain", + "svg_id": "node_1", + "type": "ibm_cis_domain" }, { "apply": { - "instances": [ - { - "attributes": { - "address_prefix_management": "auto", - "classic_access": false, - "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "is_default": null, - "name": "vpc-fs2020-lab3", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3", - "resource_status": "available", - "status": "available", - "tags": [], - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], + "instances": [], "mode": "managed", - "name": "vpc1", + "name": "web_domain", "provider": "provider.ibm", - "type": "ibm_is_vpc" + "type": "ibm_cis_domain_settings" }, "cluster": "root", + "cost": "no cost available", "definition": { - "name": "${var.vpc_name}" + "cis_id": "${ibm_cis.web_domain.id}", + "domain_id": "${ibm_cis_domain.web_domain.id}", + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" }, "group": 20000, - "label": "[root] ibm_is_vpc.vpc1", + "label": "[root] ibm_cis_domain_settings.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_vpc.vpc1", + "address": "ibm_cis_domain_settings.web_domain", "change": { "actions": [ "create" ], "after": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "vpc-fs2020-lab", - "tags": null, - "timeouts": null + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" }, "after_unknown": { - "default_network_acl": true, - "default_security_group": true, + "always_use_https": true, + "automatic_https_rewrites": true, + "brotli": true, + "browser_check": true, + "certificate_status": true, + "cis_id": true, + "cname_flattening": true, + "domain_id": true, + "hotlink_protection": true, + "http2": true, "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true + "image_load_optimization": true, + "image_size_optimization": true, + "ip_geolocation": true, + "ipv6": true, + "opportunistic_encryption": true, + "origin_error_page_pass_thru": true, + "prefetch_preload": true, + "pseudo_ipv4": true, + "response_buffering": true, + "script_load_optimization": true, + "server_side_exclude": true, + "tls_client_auth": true, + "true_client_ip_header": true, + "websockets": true }, "before": null }, "mode": "managed", - "name": "vpc1", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_vpc", + "type": "ibm_cis_domain_settings", "values": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "vpc-fs2020-lab", - "tags": null, - "timeouts": null + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" } }, - "resource_name": "vpc1", - "simple_name": "ibm_is_vpc.vpc1", - "svg_id": "node_15", - "type": "ibm_is_vpc" - }, - { - "apply": { - "instances": [ + "policy": { + "decision": "failed", + "name": "web_domain", + "policies": [ { - "attributes": { - "cidr": "172.16.1.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", - "name": "vpc-ap1", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_vpc.vpc1" + "capsule": "SecurityCapsule", + "control": "SecurityControl", + "rules": [ + "ibm_cis_domain_settings" ], - "private": "bnVsbA==", - "schema_version": 0 + "severity": "" + }, + { + "capsule": "ConfigCapsule", + "control": "ConfigurationControl", + "rules": [ + "too_many_admins", + "too_many_managers" + ], + "severity": "" } ], - "mode": "managed", - "name": "vpc-ap1", - "provider": "provider.ibm", - "type": "ibm_is_vpc_address_prefix" - }, - "cluster": "root", - "definition": { - "cidr": "${var.zone1_cidr}", - "name": "vpc-ap1", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc_address_prefix.vpc-ap1", - "change": { - "actions": [ - "create" - ], - "after": { - "cidr": "172.16.1.0/24", - "name": "vpc-ap1", - "zone": "us-south-1" - }, - "after_unknown": { - "has_subnets": true, - "id": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "vpc-ap1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc_address_prefix", - "values": { - "cidr": "172.16.1.0/24", - "name": "vpc-ap1", - "zone": "us-south-1" - } + "type": "ibm_cis_domain_settings" }, - "resource_name": "vpc-ap1", - "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "node_16", - "type": "ibm_is_vpc_address_prefix" + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain_settings.web_domain", + "svg_id": "node_2", + "type": "ibm_cis_domain_settings" }, { "apply": { "instances": [ { "attributes": { - "cidr": "172.16.2.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", - "name": "vpc-ap2", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" + "default": false, + "id": "769cf60b1ecc4cb092cab5e7af075d3f", + "name": "gilad-test-group1", + "quota_id": null, + "state": "ACTIVE", + "tags": null }, - "dependencies": [ - "ibm_is_vpc.vpc1" - ], "private": "bnVsbA==", "schema_version": 0 } ], "mode": "managed", - "name": "vpc-ap2", + "name": "web_group", "provider": "provider.ibm", - "type": "ibm_is_vpc_address_prefix" + "type": "ibm_resource_group" }, "cluster": "root", + "cost": "no cost available", "definition": { - "cidr": "${var.zone2_cidr}", - "name": "vpc-ap2", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" + "name": "${var.resource_group}" }, "group": 20000, - "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", + "label": "[root] ibm_resource_group.web_group", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_vpc_address_prefix.vpc-ap2", + "address": "ibm_resource_group.web_group", "change": { "actions": [ "create" ], "after": { - "cidr": "172.16.2.0/24", - "name": "vpc-ap2", - "zone": "us-south-2" + "name": "gilad-test-group", + "quota_id": null, + "tags": null }, "after_unknown": { - "has_subnets": true, + "default": true, "id": true, - "vpc": true + "state": true }, "before": null }, "mode": "managed", - "name": "vpc-ap2", + "name": "web_group", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_vpc_address_prefix", + "type": "ibm_resource_group", "values": { - "cidr": "172.16.2.0/24", - "name": "vpc-ap2", - "zone": "us-south-2" + "name": "gilad-test-group", + "quota_id": null, + "tags": null } }, - "resource_name": "vpc-ap2", - "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "node_17", - "type": "ibm_is_vpc_address_prefix" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", - "definition": { - "value": "${ibm_is_floating_ip.floatingip1.address}" - }, - "group": 20000, - "label": "[root] output.FloatingIP-1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "FloatingIP-1", - "simple_name": "output.FloatingIP-1", - "svg_id": "node_18", - "type": "output" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", - "definition": { - "value": "${ibm_is_floating_ip.floatingip2.address}" - }, - "group": 20000, - "label": "[root] output.FloatingIP-2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "FloatingIP-2", - "simple_name": "output.FloatingIP-2", - "svg_id": "node_19", - "type": "output" + "policy": "no policy available", + "resource_name": "web_group", + "simple_name": "ibm_resource_group.web_group", + "svg_id": "node_3", + "type": "ibm_resource_group" }, { "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", + "cluster": "root", + "cost": "no cost available", "definition": { - "value": "http://${ibm_is_lb.lb1.hostname}" + "value": "http://${var.dns_name}${var.domain}" }, "group": 20000, - "label": "[root] output.LB-Hostname", + "label": "[root] output.web_dns_name", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "LB-Hostname", - "simple_name": "output.LB-Hostname", - "svg_id": "node_20", + "policy": "no policy available", + "resource_name": "web_dns_name", + "simple_name": "output.web_dns_name", + "svg_id": "node_4", "type": "output" }, { "apply": {}, "cluster": "root", - "definition": { - "generation": 2, - "region": "${var.ibmcloud_region}" - }, + "cost": "cost data to be displayed here", + "definition": {}, "group": 20000, "label": "[root] provider.ibm", "module": "root", @@ -2186,201 +441,119 @@ "root" ], "plan": {}, + "policy": "policy data to be displayed here", "resource_name": "ibm", "simple_name": "provider.ibm", - "svg_id": "node_21", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.template", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "template", - "simple_name": "provider.template", - "svg_id": "node_22", + "svg_id": "node_5", "type": "provider" }, { "apply": null, - "cluster": "cluster[root] provider.ibm_var_", - "definition": { - "default": "us-south", - "description": "Preferred IBM Cloud region to use for your infrastructure" - }, - "group": 20000, - "label": "[root] var.ibmcloud_region", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "ibmcloud_region", - "simple_name": "var.ibmcloud_region", - "svg_id": "node_23", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "default": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "description": "OS Image ID to be used for virtual instances" - }, - "group": 20000, - "label": "[root] var.image", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "image", - "simple_name": "var.image", - "svg_id": "node_24", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "default": "cx2-2x4", - "description": "Instance profile to be used for virtual instances" - }, - "group": 20000, - "label": "[root] var.profile", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "profile", - "simple_name": "var.profile", - "svg_id": "node_25", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", - "definition": { - "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "description": "SSH Public Key contents to be used" - }, - "group": 20000, - "label": "[root] var.ssh_public_key", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "ssh_public_key", - "simple_name": "var.ssh_public_key", - "svg_id": "node_26", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "cost": "no cost available", "definition": { - "default": "vpc-fs2020-lab3", - "description": "Name of your VPC" + "default": "lon02" }, "group": 20000, - "label": "[root] var.vpc_name", + "label": "[root] var.datacenter1", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "vpc_name", - "simple_name": "var.vpc_name", - "svg_id": "node_27", + "policy": "no policy available", + "resource_name": "datacenter1", + "simple_name": "var.datacenter1", + "svg_id": "node_6", "type": "var" }, { "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "cost": "no cost available", "definition": { - "default": "us-south-1", - "description": "Define the 1st zone of the region" + "default": "ams03" }, "group": 20000, - "label": "[root] var.zone1", + "label": "[root] var.datacenter2", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "zone1", - "simple_name": "var.zone1", - "svg_id": "node_28", + "policy": "no policy available", + "resource_name": "datacenter2", + "simple_name": "var.datacenter2", + "svg_id": "node_7", "type": "var" }, { "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", + "cluster": "cluster[root] output.web_dns_name_var_", + "cost": "no cost available", "definition": { - "default": "172.16.1.0/24", - "description": "CIDR block to be used for zone 1" + "default": "", + "description": "DNS name (prefix) for website, including '.', 'www.'" }, "group": 20000, - "label": "[root] var.zone1_cidr", + "label": "[root] var.dns_name", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "zone1_cidr", - "simple_name": "var.zone1_cidr", - "svg_id": "node_29", + "policy": "no policy available", + "resource_name": "dns_name", + "simple_name": "var.dns_name", + "svg_id": "node_8", "type": "var" }, { "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "cluster": "root", + "cost": "no cost available", "definition": { - "default": "us-south-2", - "description": "Define the 2nd zone of the region" + "default": "example.com", + "description": "DNS Domain for web server" }, "group": 20000, - "label": "[root] var.zone2", + "label": "[root] var.domain", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "zone2", - "simple_name": "var.zone2", - "svg_id": "node_30", + "policy": "no policy available", + "resource_name": "domain", + "simple_name": "var.domain", + "svg_id": "node_9", "type": "var" }, { "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", + "cluster": "cluster[root] ibm_resource_group.web_group_var_", + "cost": "no cost available", "definition": { - "default": "172.16.2.0/24", - "description": "CIDR block to be used for zone 2" + "default": "gilad-test-group1", + "description": "IBM Cloud Resource Group" }, "group": 20000, - "label": "[root] var.zone2_cidr", + "label": "[root] var.resource_group", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "zone2_cidr", - "simple_name": "var.zone2_cidr", - "svg_id": "node_31", + "policy": "no policy available", + "resource_name": "resource_group", + "simple_name": "var.resource_group", + "svg_id": "node_10", "type": "var" }, { "apply": {}, "cluster": "root", + "cost": {}, "definition": "", "group": 20000, "label": "[root] meta.count-boundary (EachMode fixup)", @@ -2389,18 +562,17 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "count-boundary", "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_32", + "svg_id": "node_11", "type": "meta" }, { "apply": {}, "cluster": "root", - "definition": { - "generation": 2, - "region": "${var.ibmcloud_region}" - }, + "cost": {}, + "definition": {}, "group": 20000, "label": "[root] provider.ibm (close)", "module": "root", @@ -2408,30 +580,16 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "ibm", "simple_name": "provider.ibm (close)", - "svg_id": "node_33", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.template (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "template", - "simple_name": "provider.template (close)", - "svg_id": "node_34", + "svg_id": "node_12", "type": "provider" }, { "apply": {}, "cluster": "root", + "cost": {}, "definition": "", "group": 20000, "label": "[root] root", @@ -2440,11 +598,12 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "", "simple_name": "root", - "svg_id": "node_35", + "svg_id": "node_13", "type": "" } - ] -} - + ], + "totalcost": "" +} \ No newline at end of file diff --git a/npm/example/demo-1/demo-1.svg b/npm/example/demo-1/demo-1.svg index 47af9a4..bf35cec 100644 --- a/npm/example/demo-1/demo-1.svg +++ b/npm/example/demo-1/demo-1.svg @@ -1,669 +1,220 @@ - - - - -%3 - + + + + -cluster[root] provider.ibm_var_ +cluster[root] meta.count-boundary (EachMode fixup)_var_ -cluster[root] ibm_is_ssh_key.ssh1_var_ +cluster[root] output.web_dns_name_var_ -cluster[root] ibm_is_vpc.vpc1_var_ +cluster[root] ibm_resource_group.web_group_var_ - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 + + +[root] ibm_cis.web_domain + +ibm_cis + +web_domain - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 + + +[root] ibm_resource_group.web_group + +ibm_resource_group + +web_group - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - -cloud-init-apptier - - - -[root] provider.template - -provider - -template - - + -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - +[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group + + - + -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - -instance1 +[root] ibm_cis_domain.web_domain + +ibm_cis_domain + +web_domain - + -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - +[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain + + - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - -instance2 + + +[root] var.domain + +var + +domain - + -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - +[root] ibm_cis_domain.web_domain->[root] var.domain + + - + + +[root] ibm_cis_domain_settings.web_domain + +ibm_cis_domain_settings + +web_domain + + -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - +[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain + + - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - -ssh1 + + +[root] provider.ibm + +provider + +ibm - + -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - +[root] ibm_resource_group.web_group->[root] provider.ibm + + - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - -subnet1 + + +[root] var.resource_group + +var + +resource_group - + -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - +[root] ibm_resource_group.web_group->[root] var.resource_group + + - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - + + +[root] output.web_dns_name + +output + +web_dns_name - + -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - +[root] output.web_dns_name->[root] var.domain + + - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - -lb1-listener + + +[root] var.dns_name + +var + +dns_name - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - -lb1-pool + + +[root] output.web_dns_name->[root] var.dns_name + + - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - + + +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_cis_domain_settings.web_domain + + - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - + + +[root] meta.count-boundary (EachMode fixup)->[root] output.web_dns_name + + - - -[root] provider.ibm - -provider - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - + + +[root] var.datacenter1 + +var + +datacenter1 - - -[root] meta.count-boundary (EachMode fixup) - -meta - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - + + +[root] meta.count-boundary (EachMode fixup)->[root] var.datacenter1 + + - + [root] provider.ibm (close) - -provider - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - + +provider + +ibm + + + +[root] provider.ibm (close)->[root] ibm_cis_domain_settings.web_domain + + - + [root] root - -[root] root + +[root] root - + [root] root->[root] meta.count-boundary (EachMode fixup) - - + + - + [root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - + + + + + +[root] var.datacenter2 + +var + +datacenter2 + + + +[root] var.datacenter1->[root] var.datacenter2 + diff --git a/npm/example/demo-1/demonew-1.svg b/npm/example/demo-1/demonew-1.svg deleted file mode 100644 index b847b20..0000000 --- a/npm/example/demo-1/demonew-1.svg +++ /dev/null @@ -1,757 +0,0 @@ - - - - - - -%3 - - -cluster[root] provider.ibm_var_ - - -cluster[root] ibm_is_ssh_key.ssh1_var_ - - -cluster[root] ibm_is_vpc.vpc1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 - - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - - - - -cloud-init-apptier - - - -[root] provider.template - -provider - - -template - - - -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - - - - -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - - -+ - - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - - -+ - - -instance1 - - - -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - - -+ - - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - - -+ - - -instance2 - - - -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - - -+ - - -ssh1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - - -+ - - -subnet1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - - - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - - -+ - - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - - -+ - - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - - -+ - - -lb1-listener - - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - - -+ - - -lb1-pool - - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - - -+ - - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - - -+ - - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - - -+ - - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - - -+ - - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] provider.ibm - -provider - - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - - -+ - - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - - -+ - - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - - -+ - - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - - - - -[root] provider.ibm (close) - -provider - - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - - - - diff --git a/npm/example/demo-1/simple-demo-1.json b/npm/example/demo-1/simple-demo-1.json deleted file mode 100644 index b463be6..0000000 --- a/npm/example/demo-1/simple-demo-1.json +++ /dev/null @@ -1,659 +0,0 @@ -{ - "edges": [ - { - "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", - "svg_id": "edge_0", - "target": "[root] ibm_iam_authorization_policy.policy" - }, - { - "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", - "svg_id": "edge_1", - "target": "[root] ibm_kp_key.test" - }, - { - "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", - "svg_id": "edge_2", - "target": "[root] ibm_resource_instance.cos_instance" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_authorization_policy.policy", - "svg_id": "edge_3", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_kp_key.test", - "svg_id": "edge_4", - "target": "[root] ibm_resource_instance.kp_instance" - }, - { - "edge_type": 1, - "source": "[root] ibm_kp_key.test", - "svg_id": "edge_5", - "target": "[root] var.key_name" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", - "svg_id": "edge_6", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", - "svg_id": "edge_7", - "target": "[root] var.cos_name" - }, - { - "edge_type": 2, - "source": "[root] ibm_resource_instance.cos_instance", - "svg_id": "edge_8", - "target": "[root] var.location" - }, - { - "edge_type": 2, - "source": "[root] ibm_resource_instance.cos_instance", - "svg_id": "edge_9", - "target": "[root] var.pln" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", - "svg_id": "edge_10", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", - "svg_id": "edge_11", - "target": "[root] var.kp_name" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_12", - "target": "[root] ibm_cos_bucket.flex-us-south" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_13", - "target": "[root] ibm_cos_bucket.flex-us-south" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_14", - "target": "[root] meta.count-boundary (EachMode fixup)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_15", - "target": "[root] provider.ibm (close)" - }, - { - "edge_type": 3, - "source": "[root] var.cos_name", - "svg_id": "edge_16", - "target": "[root] var.location" - }, - { - "edge_type": 3, - "source": "[root] var.location", - "svg_id": "edge_17", - "target": "[root] var.pln" - } - ], - "nodes": [ - { - "apply": { - "instances": [ - { - "attributes": { - "bucket_name": "abuck3", - "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c:bucket:abuck3", - "cross_region_location": null, - "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c:bucket:abuck3:meta:rl:us-south", - "key_protect": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", - "region_location": "us-south", - "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", - "s3_endpoint_private": "s3.private.us-south.cloud-object-storage.appdomain.cloud", - "s3_endpoint_public": "s3.us-south.cloud-object-storage.appdomain.cloud", - "single_site_location": null, - "storage_class": "flex", - "timeouts": null - }, - "dependencies": [ - "ibm_kp_key.test", - "ibm_resource_instance.cos_instance", - "ibm_resource_instance.kp_instance" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "flex-us-south", - "provider": "provider.ibm", - "type": "ibm_cos_bucket" - }, - "cluster": "root", - "definition": { - "bucket_name": "abuck3", - "key_protect": "${ibm_kp_key.test.id}", - "region_location": "us-south", - "resource_instance_id": "${ibm_resource_instance.cos_instance.id}", - "storage_class": "flex" - }, - "group": 20000, - "label": "[root] ibm_cos_bucket.flex-us-south", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_cos_bucket.flex-us-south", - "change": { - "actions": [ - "create" - ], - "after": { - "bucket_name": "abuck3", - "cross_region_location": null, - "region_location": "us-south", - "single_site_location": null, - "storage_class": "flex", - "timeouts": null - }, - "after_unknown": { - "crn": true, - "id": true, - "key_protect": true, - "resource_instance_id": true, - "s3_endpoint_private": true, - "s3_endpoint_public": true - }, - "before": null - }, - "mode": "managed", - "name": "flex-us-south", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_cos_bucket", - "values": { - "bucket_name": "abuck3", - "cross_region_location": null, - "region_location": "us-south", - "single_site_location": null, - "storage_class": "flex", - "timeouts": null - } - }, - "resource_name": "flex-us-south", - "simple_name": "ibm_cos_bucket.flex-us-south", - "svg_id": "node_0", - "type": "ibm_cos_bucket" - }, - { - "apply": null, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] ibm_iam_authorization_policy.policy", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "policy", - "simple_name": "ibm_iam_authorization_policy.policy", - "svg_id": "node_1", - "type": "ibm_iam_authorization_policy" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", - "encrypted_nonce": null, - "id": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", - "iv_value": "", - "key_id": "1776b7ca-c34b-443b-a455-17344ad399ca", - "key_name": "test_key2", - "key_protect_id": "a2e6868e-bae8-4894-8931-837f94597753", - "payload": "", - "resource_controller_url": "https://cloud.ibm.com/services/kms/crn%3Av1%3Abluemix%3Apublic%3Akms%3Aus-south%3Aa%2Fb9687c7011984685a20a8d25dfbea11b%3Aa2e6868e-bae8-4894-8931-837f94597753%3A%3A", - "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753:key:1776b7ca-c34b-443b-a455-17344ad399ca", - "resource_group_name": null, - "resource_name": "test_key2", - "resource_status": null, - "standard_key": false, - "timeouts": null - }, - "dependencies": [ - "ibm_resource_instance.kp_instance" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "test", - "provider": "provider.ibm", - "type": "ibm_kp_key" - }, - "cluster": "root", - "definition": { - "key_name": "${var.key_name}", - "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", - "standard_key": false - }, - "group": 20000, - "label": "[root] ibm_kp_key.test", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_kp_key.test", - "change": { - "actions": [ - "create" - ], - "after": { - "encrypted_nonce": null, - "iv_value": null, - "key_name": "test_key2", - "standard_key": false, - "timeouts": null - }, - "after_unknown": { - "crn": true, - "id": true, - "key_id": true, - "key_protect_id": true, - "payload": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true - }, - "before": null - }, - "mode": "managed", - "name": "test", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_kp_key", - "values": { - "encrypted_nonce": null, - "iv_value": null, - "key_name": "test_key2", - "standard_key": false, - "timeouts": null - } - }, - "resource_name": "test", - "simple_name": "ibm_kp_key.test", - "svg_id": "node_2", - "type": "ibm_kp_key" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", - "guid": "0eda139d-53de-432f-bff7-182a32d16a3c", - "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", - "location": "global", - "name": "test_cos2", - "parameters": null, - "plan": "standard", - "resource_controller_url": "https://cloud.ibm.com/services/", - "resource_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/b9687c7011984685a20a8d25dfbea11b:0eda139d-53de-432f-bff7-182a32d16a3c::", - "resource_group_id": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "", - "resource_name": "test_cos2", - "resource_status": "active", - "service": "cloud-object-storage", - "service_endpoints": null, - "status": "active", - "tags": null, - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "cos_instance", - "provider": "provider.ibm", - "type": "ibm_resource_instance" - }, - "cluster": "root", - "definition": { - "location": "${var.location}", - "name": "${var.cos_name}", - "plan": "${var.pln}", - "service": "cloud-object-storage" - }, - "group": 20000, - "label": "[root] ibm_resource_instance.cos_instance", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_resource_instance.cos_instance", - "change": { - "actions": [ - "create" - ], - "after": { - "location": "global", - "name": "test_cos2", - "parameters": null, - "plan": "standard", - "resource_group_id": null, - "service": "cloud-object-storage", - "service_endpoints": null, - "tags": null, - "timeouts": null - }, - "after_unknown": { - "crn": true, - "guid": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "cos_instance", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_resource_instance", - "values": { - "location": "global", - "name": "test_cos2", - "parameters": null, - "plan": "standard", - "resource_group_id": null, - "service": "cloud-object-storage", - "service_endpoints": null, - "tags": null, - "timeouts": null - } - }, - "resource_name": "cos_instance", - "simple_name": "ibm_resource_instance.cos_instance", - "svg_id": "node_3", - "type": "ibm_resource_instance" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753::", - "guid": "a2e6868e-bae8-4894-8931-837f94597753", - "id": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753::", - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_controller_url": "https://cloud.ibm.com/services/", - "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/b9687c7011984685a20a8d25dfbea11b:a2e6868e-bae8-4894-8931-837f94597753::", - "resource_group_id": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "", - "resource_name": "test_kp2", - "resource_status": "active", - "service": "kms", - "service_endpoints": null, - "status": "active", - "tags": null, - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "kp_instance", - "provider": "provider.ibm", - "type": "ibm_resource_instance" - }, - "cluster": "root", - "definition": { - "location": "us-south", - "name": "${var.kp_name}", - "plan": "tiered-pricing", - "service": "kms" - }, - "group": 20000, - "label": "[root] ibm_resource_instance.kp_instance", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_resource_instance.kp_instance", - "change": { - "actions": [ - "create" - ], - "after": { - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "kms", - "service_endpoints": null, - "tags": null, - "timeouts": null - }, - "after_unknown": { - "crn": true, - "guid": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "kp_instance", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_resource_instance", - "values": { - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "kms", - "service_endpoints": null, - "tags": null, - "timeouts": null - } - }, - "resource_name": "kp_instance", - "simple_name": "ibm_resource_instance.kp_instance", - "svg_id": "node_4", - "type": "ibm_resource_instance" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_5", - "type": "provider" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", - "definition": { - "default": "test_cos2" - }, - "group": 20000, - "label": "[root] var.cos_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "cos_name", - "simple_name": "var.cos_name", - "svg_id": "node_6", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_kp_key.test_var_", - "definition": { - "default": "test_key2" - }, - "group": 20000, - "label": "[root] var.key_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "key_name", - "simple_name": "var.key_name", - "svg_id": "node_7", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.kp_instance_var_", - "definition": { - "default": "test_kp2" - }, - "group": 20000, - "label": "[root] var.kp_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "kp_name", - "simple_name": "var.kp_name", - "svg_id": "node_8", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", - "definition": { - "default": "global" - }, - "group": 20000, - "label": "[root] var.location", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "location", - "simple_name": "var.location", - "svg_id": "node_9", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", - "definition": { - "default": "standard" - }, - "group": 20000, - "label": "[root] var.pln", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "pln", - "simple_name": "var.pln", - "svg_id": "node_10", - "type": "var" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_11", - "type": "meta" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.ibm (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", - "svg_id": "node_12", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] root", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "", - "simple_name": "root", - "svg_id": "node_13", - "type": "" - } - ] -} diff --git a/npm/example/demo-1/simple-demo-1.svg b/npm/example/demo-1/simple-demo-1.svg deleted file mode 100644 index e1f1e60..0000000 --- a/npm/example/demo-1/simple-demo-1.svg +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - -%3 - - -cluster[root] ibm_resource_instance.cos_instance_var_ - - -cluster[root] ibm_kp_key.test_var_ - - -cluster[root] ibm_resource_instance.kp_instance_var_ - - - -[root] ibm_cos_bucket.flex-us-south - -ibm_cos_bucket - - -+ - - -flex-us-south - - - -[root] ibm_kp_key.test - -ibm_kp_key - - -+ - - -test - - - -[root] ibm_cos_bucket.flex-us-south->[root] ibm_kp_key.test - - - - - -[root] ibm_resource_instance.cos_instance - -ibm_resource_instance - - -+ - - -cos_instance - - - -[root] ibm_cos_bucket.flex-us-south->[root] ibm_resource_instance.cos_instance - - - - - -[root] ibm_resource_instance.kp_instance - -ibm_resource_instance - - -+ - - -kp_instance - - - -[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance - - - - - -[root] var.key_name - -var - - -key_name - - - -[root] ibm_kp_key.test->[root] var.key_name - - - - - -[root] provider.ibm - -provider - - -ibm - - - -[root] ibm_resource_instance.cos_instance->[root] provider.ibm - - - - - -[root] var.cos_name - -var - - -cos_name - - - -[root] ibm_resource_instance.cos_instance->[root] var.cos_name - - - - - -[root] ibm_resource_instance.kp_instance->[root] provider.ibm - - - - - -[root] var.kp_name - -var - - -kp_name - - - -[root] ibm_resource_instance.kp_instance->[root] var.kp_name - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_cos_bucket.flex-us-south - - - - - -[root] provider.ibm (close) - -provider - - -ibm - - - -[root] provider.ibm (close)->[root] ibm_cos_bucket.flex-us-south - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] var.location - -var - - -location - - - -[root] var.cos_name->[root] var.location - - - - -[root] var.pln - -var - - -pln - - - -[root] var.location->[root] var.pln - - - - diff --git a/npm/example/demo-2/demo-2.json b/npm/example/demo-2/demo-2.json deleted file mode 100644 index a0b2660..0000000 --- a/npm/example/demo-2/demo-2.json +++ /dev/null @@ -1,2799 +0,0 @@ -{ - "edges": [ - { - "edge_type": 1, - "source": "[root] data.template_cloudinit_config.cloud-init-apptier", - "svg_id": "edge_0", - "target": "[root] provider.template" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_floating_ip.floatingip1", - "svg_id": "edge_1", - "target": "[root] ibm_is_instance.instance1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_floating_ip.floatingip2", - "svg_id": "edge_2", - "target": "[root] ibm_is_instance.instance2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_3", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_4", - "target": "[root] ibm_is_ssh_key.ssh1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_5", - "target": "[root] ibm_is_subnet.subnet1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_6", - "target": "[root] var.image" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_7", - "target": "[root] var.profile" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_8", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_9", - "target": "[root] ibm_is_ssh_key.ssh1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_10", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_11", - "target": "[root] var.image" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_12", - "target": "[root] var.profile" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb.lb1", - "svg_id": "edge_13", - "target": "[root] ibm_is_subnet.subnet1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb.lb1", - "svg_id": "edge_14", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_listener.lb1-listener", - "svg_id": "edge_15", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool.lb1-pool", - "svg_id": "edge_16", - "target": "[root] ibm_is_lb.lb1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "edge_17", - "target": "[root] ibm_is_instance.instance1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "edge_18", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "edge_19", - "target": "[root] ibm_is_instance.instance2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "edge_20", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "edge_21", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "edge_22", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "edge_23", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "edge_24", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_ssh_key.ssh1", - "svg_id": "edge_25", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_ssh_key.ssh1", - "svg_id": "edge_26", - "target": "[root] var.ssh_public_key" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet1", - "svg_id": "edge_27", - "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet2", - "svg_id": "edge_28", - "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_29", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_30", - "target": "[root] var.vpc_name" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_31", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_32", - "target": "[root] var.zone1" - }, - { - "edge_type": 2, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_33", - "target": "[root] var.zone1_cidr" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_34", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_35", - "target": "[root] var.zone2" - }, - { - "edge_type": 2, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_36", - "target": "[root] var.zone2_cidr" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_37", - "target": "[root] ibm_is_lb_listener.lb1-listener" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_38", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_39", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_40", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_41", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_42", - "target": "[root] output.FloatingIP-1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_43", - "target": "[root] output.FloatingIP-2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_44", - "target": "[root] output.LB-Hostname" - }, - { - "edge_type": 1, - "source": "[root] output.FloatingIP-1", - "svg_id": "edge_45", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] output.FloatingIP-2", - "svg_id": "edge_46", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] output.LB-Hostname", - "svg_id": "edge_47", - "target": "[root] ibm_is_lb.lb1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_48", - "target": "[root] ibm_is_lb_listener.lb1-listener" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_49", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_50", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_51", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_52", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm", - "svg_id": "edge_53", - "target": "[root] var.ibmcloud_region" - }, - { - "edge_type": 1, - "source": "[root] provider.template (close)", - "svg_id": "edge_54", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_55", - "target": "[root] meta.count-boundary (EachMode fixup)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_56", - "target": "[root] provider.ibm (close)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_57", - "target": "[root] provider.template (close)" - }, - { - "edge_type": 3, - "source": "[root] var.zone1", - "svg_id": "edge_58", - "target": "[root] var.zone1_cidr" - }, - { - "edge_type": 3, - "source": "[root] var.zone2", - "svg_id": "edge_59", - "target": "[root] var.zone2_cidr" - } - ], - "nodes": [ - { - "apply": { - "instances": [ - { - "attributes": { - "base64_encode": false, - "gzip": false, - "id": "708834281", - "part": [ - { - "content": "#cloud-config\npackages:\n - nginx\n\n", - "content_type": "", - "filename": "", - "merge_type": "" - } - ], - "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" - }, - "schema_version": 0 - } - ], - "mode": "data", - "name": "cloud-init-apptier", - "provider": "provider.template", - "type": "template_cloudinit_config" - }, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] data.template_cloudinit_config.cloud-init-apptier", - "module": "root", - "modules": [ - "root" - ], - "plan": "data-source", - "resource_name": "cloud-init-apptier", - "simple_name": "data.template_cloudinit_config.cloud-init-apptier", - "svg_id": "node_0", - "type": "template_cloudinit_config" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "address": "52.116.132.120", - "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "name": "fip6", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip6", - "resource_status": "available", - "status": "available", - "target": "0717-6ff05814-9f21-4795-959c-c1a5072cda06", - "timeouts": null, - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_instance.instance1", - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet1", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "floatingip1", - "provider": "provider.ibm", - "type": "ibm_is_floating_ip" - }, - "cluster": "root", - "definition": { - "name": "fip6", - "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" - }, - "group": 20000, - "label": "[root] ibm_is_floating_ip.floatingip1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_floating_ip.floatingip1", - "change": { - "actions": [ - "update" - ], - "after": { - "address": "52.116.132.120", - "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "name": "fip6", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip4", - "resource_status": "available", - "status": "available", - "timeouts": null, - "zone": "us-south-1" - }, - "after_unknown": { - "target": true - }, - "before": { - "address": "52.116.132.120", - "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "name": "fip4", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip4", - "resource_status": "available", - "status": "available", - "target": "0717-63e55a61-dfdc-47f5-ba6e-92f47c63500f", - "timeouts": null, - "zone": "us-south-1" - } - }, - "mode": "managed", - "name": "floatingip1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_floating_ip", - "values": { - "address": "52.116.132.120", - "id": "r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "name": "fip6", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-9661aedd-3abf-4c59-8071-c3ae62a01df2", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip4", - "resource_status": "available", - "status": "available", - "timeouts": null, - "zone": "us-south-1" - } - }, - "resource_name": "floatingip1", - "simple_name": "ibm_is_floating_ip.floatingip1", - "svg_id": "node_1", - "type": "ibm_is_floating_ip" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "address": "169.47.92.133", - "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "name": "fip7", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip7", - "resource_status": "available", - "status": "available", - "target": "0727-ce708efe-9d1f-4236-a6c4-e2f329485017", - "timeouts": null, - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_instance.instance2", - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "floatingip2", - "provider": "provider.ibm", - "type": "ibm_is_floating_ip" - }, - "cluster": "root", - "definition": { - "name": "fip7", - "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" - }, - "group": 20000, - "label": "[root] ibm_is_floating_ip.floatingip2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_floating_ip.floatingip2", - "change": { - "actions": [ - "update" - ], - "after": { - "address": "169.47.92.133", - "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "name": "fip7", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip5", - "resource_status": "available", - "status": "available", - "timeouts": null, - "zone": "us-south-2" - }, - "after_unknown": { - "target": true - }, - "before": { - "address": "169.47.92.133", - "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "name": "fip5", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip5", - "resource_status": "available", - "status": "available", - "target": "0727-064145ac-974e-413e-a024-5148fd5eb4c4", - "timeouts": null, - "zone": "us-south-2" - } - }, - "mode": "managed", - "name": "floatingip2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_floating_ip", - "values": { - "address": "169.47.92.133", - "id": "r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "name": "fip7", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/floatingIPs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::floating-ip:r006-f002d39a-5bce-4fb7-9374-d2afced1ce91", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "fip5", - "resource_status": "available", - "status": "available", - "timeouts": null, - "zone": "us-south-2" - } - }, - "resource_name": "floatingip2", - "simple_name": "ibm_is_floating_ip.floatingip2", - "svg_id": "node_2", - "type": "ibm_is_floating_ip" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "boot_volume": [ - { - "encryption": "", - "iops": 3000, - "name": "volume-attachment", - "profile": "general-purpose", - "size": 100 - } - ], - "generation": null, - "gpu": [], - "id": "0717_63ab863e-b75b-44b0-a50a-6996aab92c3c", - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "memory": 4, - "name": "instance6", - "network_interfaces": [], - "primary_network_interface": [ - { - "id": "0717-6ff05814-9f21-4795-959c-c1a5072cda06", - "name": "sandpaper-headcount-pucker-opossum-jump-easter", - "port_speed": 0, - "primary_ipv4_address": "172.16.1.4", - "security_groups": [ - "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" - ], - "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" - } - ], - "profile": "cx2-2x4", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::instance:0717_63ab863e-b75b-44b0-a50a-6996aab92c3c", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "instance6", - "resource_status": "running", - "status": "running", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "vcpu": [ - { - "architecture": "amd64", - "count": 2 - } - ], - "volume_attachments": [ - { - "id": "0717-60f47bf7-7df2-44b1-89fb-eeb7e7bdfd18", - "name": "volume-attachment", - "volume_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-6f942a91-860d-11ea-8004-feff0b330b7b", - "volume_id": "r006-6f942a91-860d-11ea-8004-feff0b330b7b", - "volume_name": "sloppily-asleep-onto-deplete-botch-headroom" - } - ], - "volumes": null, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet1", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "instance1", - "provider": "provider.ibm", - "type": "ibm_is_instance" - }, - "cluster": "root", - "definition": { - "image": "${var.image}", - "keys": [ - "${ibm_is_ssh_key.ssh1.id}" - ], - "name": "instance6", - "primary_network_interface": { - "subnet": "${ibm_is_subnet.subnet1.id}" - }, - "profile": "${var.profile}", - "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_instance.instance1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_instance.instance1", - "change": { - "actions": [ - "create" - ], - "after": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "name": "instance6", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null, - "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "after_unknown": { - "boot_volume": true, - "gpu": true, - "id": true, - "keys": [ - false - ], - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true - } - ], - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vcpu": true, - "volume_attachments": true - }, - "before": null - }, - "mode": "managed", - "name": "instance1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_instance", - "values": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "name": "instance6", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null, - "subnet": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50" - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - } - }, - "resource_name": "instance1", - "simple_name": "ibm_is_instance.instance1", - "svg_id": "node_3", - "type": "ibm_is_instance" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "boot_volume": [ - { - "encryption": "", - "iops": 3000, - "name": "volume-attachment", - "profile": "general-purpose", - "size": 100 - } - ], - "generation": null, - "gpu": [], - "id": "0727_32656bc2-ee7b-4481-8b59-6daf266e0017", - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "memory": 4, - "name": "instance7", - "network_interfaces": [], - "primary_network_interface": [ - { - "id": "0727-ce708efe-9d1f-4236-a6c4-e2f329485017", - "name": "boasting-wanted-premises-sixfold-suing-baboon", - "port_speed": 0, - "primary_ipv4_address": "172.16.2.4", - "security_groups": [ - "r006-2073a530-8ca1-4735-9b2d-748e9c69078e" - ], - "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - } - ], - "profile": "cx2-2x4", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/vs", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::instance:0727_32656bc2-ee7b-4481-8b59-6daf266e0017", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "instance7", - "resource_status": "running", - "status": "running", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "vcpu": [ - { - "architecture": "amd64", - "count": 2 - } - ], - "volume_attachments": [ - { - "id": "0727-49ad8bec-836d-4e62-b09e-d2116e8f0185", - "name": "volume-attachment", - "volume_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::volume:r006-6fafa66c-860d-11ea-927d-feff0b0a8b11", - "volume_id": "r006-6fafa66c-860d-11ea-927d-feff0b0a8b11", - "volume_name": "earplugs-evasive-concerned-violin-corner-clause" - } - ], - "volumes": null, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "instance2", - "provider": "provider.ibm", - "type": "ibm_is_instance" - }, - "cluster": "root", - "definition": { - "image": "${var.image}", - "keys": [ - "${ibm_is_ssh_key.ssh1.id}" - ], - "name": "instance7", - "primary_network_interface": { - "subnet": "${ibm_is_subnet.subnet2.id}" - }, - "profile": "${var.profile}", - "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_instance.instance2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_instance.instance2", - "change": { - "actions": [ - "create" - ], - "after": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "name": "instance7", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null, - "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "after_unknown": { - "boot_volume": true, - "gpu": true, - "id": true, - "keys": [ - false - ], - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true - } - ], - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vcpu": true, - "volume_attachments": true - }, - "before": null - }, - "mode": "managed", - "name": "instance2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_instance", - "values": { - "generation": null, - "image": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "keys": [ - "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036" - ], - "name": "instance7", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null, - "subnet": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - } - ], - "profile": "cx2-2x4", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - } - }, - "resource_name": "instance2", - "simple_name": "ibm_is_instance.instance2", - "svg_id": "node_4", - "type": "ibm_is_instance" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "hostname": "f8983743-us-south.lb.appdomain.cloud", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb", - "operating_status": "online", - "private_ips": [ - "172.16.1.6", - "172.16.2.6" - ], - "public_ips": [ - "52.116.136.11", - "52.116.196.12" - ], - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3-lb", - "status": "active", - "subnets": [ - "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - ], - "timeouts": null, - "type": "public" - }, - "dependencies": [ - "ibm_is_subnet.subnet1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1", - "provider": "provider.ibm", - "type": "ibm_is_lb" - }, - "cluster": "root", - "definition": { - "name": "${var.vpc_name}-lb", - "subnets": [ - "${ibm_is_subnet.subnet1.id}", - "${ibm_is_subnet.subnet2.id}" - ] - }, - "group": 20000, - "label": "[root] ibm_is_lb.lb1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb.lb1", - "change": { - "actions": [ - "no-op" - ], - "after": { - "hostname": "f8983743-us-south.lb.appdomain.cloud", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb", - "operating_status": "online", - "private_ips": [ - "172.16.1.6", - "172.16.2.6" - ], - "public_ips": [ - "52.116.136.11", - "52.116.196.12" - ], - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3-lb", - "status": "active", - "subnets": [ - "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - ], - "timeouts": null, - "type": "public" - }, - "after_unknown": {}, - "before": { - "hostname": "f8983743-us-south.lb.appdomain.cloud", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb", - "operating_status": "online", - "private_ips": [ - "172.16.1.6", - "172.16.2.6" - ], - "public_ips": [ - "52.116.136.11", - "52.116.196.12" - ], - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3-lb", - "status": "active", - "subnets": [ - "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - ], - "timeouts": null, - "type": "public" - } - }, - "mode": "managed", - "name": "lb1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb", - "values": { - "hostname": "f8983743-us-south.lb.appdomain.cloud", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb", - "operating_status": "online", - "private_ips": [ - "172.16.1.6", - "172.16.2.6" - ], - "public_ips": [ - "52.116.136.11", - "52.116.196.12" - ], - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/loadBalancers", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3-lb", - "status": "active", - "subnets": [ - "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "0727-7c13f793-df48-4f9f-84dd-8295cc57d611" - ], - "timeouts": null, - "type": "public" - } - }, - "resource_name": "lb1", - "simple_name": "ibm_is_lb.lb1", - "svg_id": "node_5", - "type": "ibm_is_lb" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "certificate_instance": null, - "connection_limit": 0, - "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "port": 80, - "protocol": "http", - "status": "active", - "timeouts": null - }, - "dependencies": [ - "ibm_is_lb.lb1", - "ibm_is_lb_pool.lb1-pool", - "ibm_is_subnet.subnet1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-listener", - "provider": "provider.ibm", - "type": "ibm_is_lb_listener" - }, - "cluster": "root", - "definition": { - "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", - "lb": "${ibm_is_lb.lb1.id}", - "port": "80", - "protocol": "http" - }, - "group": 20000, - "label": "[root] ibm_is_lb_listener.lb1-listener", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_listener.lb1-listener", - "change": { - "actions": [ - "no-op" - ], - "after": { - "certificate_instance": null, - "connection_limit": 0, - "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "port": 80, - "protocol": "http", - "status": "active", - "timeouts": null - }, - "after_unknown": {}, - "before": { - "certificate_instance": null, - "connection_limit": 0, - "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "port": 80, - "protocol": "http", - "status": "active", - "timeouts": null - } - }, - "mode": "managed", - "name": "lb1-listener", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_listener", - "values": { - "certificate_instance": null, - "connection_limit": 0, - "default_pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-3e1e986b-b861-4304-8fd0-aa3aef5db707", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "port": 80, - "protocol": "http", - "status": "active", - "timeouts": null - } - }, - "resource_name": "lb1-listener", - "simple_name": "ibm_is_lb_listener.lb1-listener", - "svg_id": "node_6", - "type": "ibm_is_lb_listener" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_port": 0, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "provisioning_status": "active", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - }, - "dependencies": [ - "ibm_is_lb.lb1", - "ibm_is_subnet.subnet1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInVwZGF0ZSI6MzYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-pool", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool" - }, - "cluster": "root", - "definition": { - "algorithm": "round_robin", - "health_delay": "5", - "health_monitor_url": "/", - "health_retries": "2", - "health_timeout": "2", - "health_type": "http", - "lb": "${ibm_is_lb.lb1.id}", - "name": "${var.vpc_name}-lb1-pool", - "protocol": "http" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool.lb1-pool", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool.lb1-pool", - "change": { - "actions": [ - "no-op" - ], - "after": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_port": 0, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "provisioning_status": "active", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - }, - "after_unknown": {}, - "before": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_port": 0, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "provisioning_status": "active", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - } - }, - "mode": "managed", - "name": "lb1-pool", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool", - "values": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_port": 0, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "provisioning_status": "active", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - } - }, - "resource_name": "lb1-pool", - "simple_name": "ibm_is_lb_pool.lb1-pool", - "svg_id": "node_7", - "type": "ibm_is_lb_pool" - }, - { - "apply": { - "each": "list", - "instances": [ - { - "attributes": { - "health": "ok", - "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-62b278cc-2051-4955-881b-3f160f14a9a6", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-62b278cc-2051-4955-881b-3f160f14a9a6", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "provisioning_status": "active", - "target_address": "172.16.1.4", - "timeouts": null, - "weight": 50 - }, - "dependencies": [ - "ibm_is_instance.instance1", - "ibm_is_lb.lb1", - "ibm_is_lb_pool.lb1-pool", - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet1", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1" - ], - "index_key": 0, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-pool-member1", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool_member" - }, - "cluster": "root", - "definition": { - "count": 1, - "lb": "${ibm_is_lb.lb1.id}", - "pool": "${ibm_is_lb_pool.lb1-pool.id}", - "port": "80", - "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", - "change": { - "actions": [ - "delete", - "create" - ], - "after": { - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "timeouts": null - }, - "after_unknown": { - "health": true, - "href": true, - "id": true, - "provisioning_status": true, - "target_address": true, - "weight": true - }, - "before": { - "health": "faulted", - "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-ecfe3a18-4a5f-425f-b4f5-9155a7d0599f", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "provisioning_status": "active", - "target_address": "172.16.1.5", - "timeouts": null, - "weight": 50 - } - }, - "index": 0, - "mode": "managed", - "name": "lb1-pool-member1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool_member", - "values": { - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "timeouts": null - } - }, - "resource_name": "lb1-pool-member1", - "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "node_8", - "type": "ibm_is_lb_pool_member" - }, - { - "apply": { - "each": "list", - "instances": [ - { - "attributes": { - "health": "ok", - "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-6f9678f5-c71c-48f0-b646-4ccbe9fe8c73", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-6f9678f5-c71c-48f0-b646-4ccbe9fe8c73", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "provisioning_status": "active", - "target_address": "172.16.2.4", - "timeouts": null, - "weight": 50 - }, - "dependencies": [ - "ibm_is_instance.instance2", - "ibm_is_lb.lb1", - "ibm_is_lb_pool.lb1-pool", - "ibm_is_ssh_key.ssh1", - "ibm_is_subnet.subnet2", - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "index_key": 0, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "lb1-pool-member2", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool_member" - }, - "cluster": "root", - "definition": { - "count": 1, - "lb": "${ibm_is_lb.lb1.id}", - "pool": "${ibm_is_lb_pool.lb1-pool.id}", - "port": "80", - "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", - "change": { - "actions": [ - "delete", - "create" - ], - "after": { - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "timeouts": null - }, - "after_unknown": { - "health": true, - "href": true, - "id": true, - "provisioning_status": true, - "target_address": true, - "weight": true - }, - "before": { - "health": "faulted", - "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/r006-f8983743-844a-4619-8789-3ffcbed92897/pools/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/members/r006-81ceccac-212d-491e-b386-d0ad57f53be7", - "id": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a/r006-81ceccac-212d-491e-b386-d0ad57f53be7", - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "provisioning_status": "active", - "target_address": "172.16.2.5", - "timeouts": null, - "weight": 50 - } - }, - "index": 0, - "mode": "managed", - "name": "lb1-pool-member2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool_member", - "values": { - "lb": "r006-f8983743-844a-4619-8789-3ffcbed92897", - "pool": "r006-f8983743-844a-4619-8789-3ffcbed92897/r006-44aee37c-051e-4ca2-9d23-58f7c508c97a", - "port": 80, - "timeouts": null - } - }, - "resource_name": "lb1-pool-member2", - "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "node_9", - "type": "ibm_is_lb_pool_member" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - }, - "dependencies": [ - "ibm_is_floating_ip.floatingip1", - "ibm_is_floating_ip.floatingip2", - "ibm_is_instance.instance1", - "ibm_is_instance.instance2", - "ibm_is_vpc.vpc1" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "sg1_tcp_rule_22", - "provider": "provider.ibm", - "type": "ibm_is_security_group_rule" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_floating_ip.floatingip1}", - "${ibm_is_floating_ip.floatingip2}" - ], - "direction": "inbound", - "group": "${ibm_is_vpc.vpc1.default_security_group}", - "remote": "0.0.0.0/0", - "tcp": { - "port_max": "22", - "port_min": "22" - } - }, - "group": 20000, - "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", - "change": { - "actions": [ - "no-op" - ], - "after": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - }, - "after_unknown": {}, - "before": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - } - }, - "mode": "managed", - "name": "sg1_tcp_rule_22", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_security_group_rule", - "values": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-5f19d9a5-90f5-4cd1-8ccb-464510a2ba90", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - } - }, - "resource_name": "sg1_tcp_rule_22", - "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "node_10", - "type": "ibm_is_security_group_rule" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - }, - "dependencies": [ - "ibm_is_floating_ip.floatingip1", - "ibm_is_floating_ip.floatingip2", - "ibm_is_instance.instance1", - "ibm_is_instance.instance2", - "ibm_is_vpc.vpc1" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "sg1_tcp_rule_80", - "provider": "provider.ibm", - "type": "ibm_is_security_group_rule" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_floating_ip.floatingip1}", - "${ibm_is_floating_ip.floatingip2}" - ], - "direction": "inbound", - "group": "${ibm_is_vpc.vpc1.default_security_group}", - "remote": "0.0.0.0/0", - "tcp": { - "port_max": "80", - "port_min": "80" - } - }, - "group": 20000, - "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", - "change": { - "actions": [ - "no-op" - ], - "after": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - }, - "after_unknown": {}, - "before": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - } - }, - "mode": "managed", - "name": "sg1_tcp_rule_80", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_security_group_rule", - "values": { - "direction": "inbound", - "group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "icmp": [], - "id": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e.r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "rule_id": "r006-4d6c73cf-6ce5-4306-9e0c-6c79efd70c3e", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - } - }, - "resource_name": "sg1_tcp_rule_80", - "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "node_11", - "type": "ibm_is_security_group_rule" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", - "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "length": 4096, - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "ssh10", - "type": "rsa" - }, - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "ssh1", - "provider": "provider.ibm", - "type": "ibm_is_ssh_key" - }, - "cluster": "root", - "definition": { - "name": "ssh10", - "public_key": "${var.ssh_public_key}" - }, - "group": 20000, - "label": "[root] ibm_is_ssh_key.ssh1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_ssh_key.ssh1", - "change": { - "actions": [ - "no-op" - ], - "after": { - "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", - "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "length": 4096, - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "ssh10", - "type": "rsa" - }, - "after_unknown": {}, - "before": { - "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", - "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "length": 4096, - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "ssh10", - "type": "rsa" - } - }, - "mode": "managed", - "name": "ssh1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_ssh_key", - "values": { - "fingerprint": "SHA256:MF2gq98pgmaJ2JEGJu9KjQkNO0DkR/Dv2N73SenxhTA", - "id": "r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "length": 4096, - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/compute/sshKeys", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::key:r006-0ccc8520-d0a8-47ab-9994-6ac4358ec036", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "ssh10", - "type": "rsa" - } - }, - "resource_name": "ssh1", - "simple_name": "ibm_is_ssh_key.ssh1", - "svg_id": "node_12", - "type": "ibm_is_ssh_key" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "available_ipv4_address_count": null, - "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "ipv6_cidr_block": "", - "name": "subnet3", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet3", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "subnet1", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_vpc_address_prefix.vpc-ap1}" - ], - "ipv4_cidr_block": "${var.zone1_cidr}", - "name": "subnet3", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet1", - "change": { - "actions": [ - "update" - ], - "after": { - "available_ipv4_address_count": null, - "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "ipv6_cidr_block": "", - "name": "subnet3", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet1", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "after_unknown": {}, - "before": { - "available_ipv4_address_count": null, - "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "ipv6_cidr_block": "", - "name": "subnet1", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet1", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - } - }, - "mode": "managed", - "name": "subnet1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "available_ipv4_address_count": null, - "id": "0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "ipv6_cidr_block": "", - "name": "subnet3", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/b9687c7011984685a20a8d25dfbea11b::subnet:0717-0340cc00-b8e4-41ca-9f81-b903cbf61c50", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet1", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - } - }, - "resource_name": "subnet1", - "simple_name": "ibm_is_subnet.subnet1", - "svg_id": "node_13", - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "available_ipv4_address_count": null, - "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "ipv6_cidr_block": "", - "name": "subnet4", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet4", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_vpc.vpc1", - "ibm_is_vpc_address_prefix.vpc-ap2" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "subnet2", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_vpc_address_prefix.vpc-ap2}" - ], - "ipv4_cidr_block": "${var.zone2_cidr}", - "name": "subnet4", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet2", - "change": { - "actions": [ - "update" - ], - "after": { - "available_ipv4_address_count": null, - "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "ipv6_cidr_block": "", - "name": "subnet4", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet2", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "after_unknown": {}, - "before": { - "available_ipv4_address_count": null, - "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "ipv6_cidr_block": "", - "name": "subnet2", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet2", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - } - }, - "mode": "managed", - "name": "subnet2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "available_ipv4_address_count": null, - "id": "0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "ipv6_cidr_block": "", - "name": "subnet4", - "network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/b9687c7011984685a20a8d25dfbea11b::subnet:0727-7c13f793-df48-4f9f-84dd-8295cc57d611", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "subnet2", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - } - }, - "resource_name": "subnet2", - "simple_name": "ibm_is_subnet.subnet2", - "svg_id": "node_14", - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "address_prefix_management": "auto", - "classic_access": false, - "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "is_default": null, - "name": "vpc-fs2020-lab3", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3", - "resource_status": "available", - "status": "available", - "tags": [], - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "vpc1", - "provider": "provider.ibm", - "type": "ibm_is_vpc" - }, - "cluster": "root", - "definition": { - "name": "${var.vpc_name}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc.vpc1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc.vpc1", - "change": { - "actions": [ - "no-op" - ], - "after": { - "address_prefix_management": "auto", - "classic_access": false, - "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "is_default": null, - "name": "vpc-fs2020-lab3", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3", - "resource_status": "available", - "status": "available", - "tags": [], - "timeouts": null - }, - "after_unknown": {}, - "before": { - "address_prefix_management": "auto", - "classic_access": false, - "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "is_default": null, - "name": "vpc-fs2020-lab3", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3", - "resource_status": "available", - "status": "available", - "tags": [], - "timeouts": null - } - }, - "mode": "managed", - "name": "vpc1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc", - "values": { - "address_prefix_management": "auto", - "classic_access": false, - "default_network_acl": "r006-1c7e8df6-f7dc-4d71-bbdc-3f1e56216dfe", - "default_security_group": "r006-2073a530-8ca1-4735-9b2d-748e9c69078e", - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "is_default": null, - "name": "vpc-fs2020-lab3", - "resource_controller_url": "https://cloud.ibm.com/vpc-ext/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/b9687c7011984685a20a8d25dfbea11b::vpc:r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "resource_group": "ef0169d5f6ff45a8866ce5ff857aa7d1", - "resource_group_name": "Default", - "resource_name": "vpc-fs2020-lab3", - "resource_status": "available", - "status": "available", - "tags": [], - "timeouts": null - } - }, - "resource_name": "vpc1", - "simple_name": "ibm_is_vpc.vpc1", - "svg_id": "node_15", - "type": "ibm_is_vpc" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "cidr": "172.16.1.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", - "name": "vpc-ap3", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "dependencies": [ - "ibm_is_vpc.vpc1" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "vpc-ap1", - "provider": "provider.ibm", - "type": "ibm_is_vpc_address_prefix" - }, - "cluster": "root", - "definition": { - "cidr": "${var.zone1_cidr}", - "name": "vpc-ap3", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc_address_prefix.vpc-ap1", - "change": { - "actions": [ - "update" - ], - "after": { - "cidr": "172.16.1.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", - "name": "vpc-ap3", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - }, - "after_unknown": {}, - "before": { - "cidr": "172.16.1.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", - "name": "vpc-ap1", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - } - }, - "mode": "managed", - "name": "vpc-ap1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc_address_prefix", - "values": { - "cidr": "172.16.1.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-31d36b32-3a4a-4e29-abba-39497da11303", - "name": "vpc-ap3", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-1" - } - }, - "resource_name": "vpc-ap1", - "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "node_16", - "type": "ibm_is_vpc_address_prefix" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "cidr": "172.16.2.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", - "name": "vpc-ap4", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "dependencies": [ - "ibm_is_vpc.vpc1" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "vpc-ap2", - "provider": "provider.ibm", - "type": "ibm_is_vpc_address_prefix" - }, - "cluster": "root", - "definition": { - "cidr": "${var.zone2_cidr}", - "name": "vpc-ap4", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc_address_prefix.vpc-ap2", - "change": { - "actions": [ - "update" - ], - "after": { - "cidr": "172.16.2.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", - "name": "vpc-ap4", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - }, - "after_unknown": {}, - "before": { - "cidr": "172.16.2.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", - "name": "vpc-ap2", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - } - }, - "mode": "managed", - "name": "vpc-ap2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc_address_prefix", - "values": { - "cidr": "172.16.2.0/24", - "has_subnets": true, - "id": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5/r006-e184f6cd-2534-4fa9-8116-d3d0209df709", - "name": "vpc-ap4", - "vpc": "r006-41cf5f67-57a8-4f3f-91d2-c35ecf2a7df5", - "zone": "us-south-2" - } - }, - "resource_name": "vpc-ap2", - "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "node_17", - "type": "ibm_is_vpc_address_prefix" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", - "definition": { - "value": "${ibm_is_floating_ip.floatingip1.address}" - }, - "group": 20000, - "label": "[root] output.FloatingIP-1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "FloatingIP-1", - "simple_name": "output.FloatingIP-1", - "svg_id": "node_18", - "type": "output" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", - "definition": { - "value": "${ibm_is_floating_ip.floatingip2.address}" - }, - "group": 20000, - "label": "[root] output.FloatingIP-2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "FloatingIP-2", - "simple_name": "output.FloatingIP-2", - "svg_id": "node_19", - "type": "output" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", - "definition": { - "value": "http://${ibm_is_lb.lb1.hostname}" - }, - "group": 20000, - "label": "[root] output.LB-Hostname", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "LB-Hostname", - "simple_name": "output.LB-Hostname", - "svg_id": "node_20", - "type": "output" - }, - { - "apply": {}, - "cluster": "root", - "definition": { - "generation": 2, - "region": "${var.ibmcloud_region}" - }, - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_21", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.template", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "template", - "simple_name": "provider.template", - "svg_id": "node_22", - "type": "provider" - }, - { - "apply": null, - "cluster": "cluster[root] provider.ibm_var_", - "definition": { - "default": "us-south", - "description": "Preferred IBM Cloud region to use for your infrastructure" - }, - "group": 20000, - "label": "[root] var.ibmcloud_region", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "ibmcloud_region", - "simple_name": "var.ibmcloud_region", - "svg_id": "node_23", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "default": "r006-14140f94-fcc4-11e9-96e7-a72723715315", - "description": "OS Image ID to be used for virtual instances" - }, - "group": 20000, - "label": "[root] var.image", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "image", - "simple_name": "var.image", - "svg_id": "node_24", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "default": "cx2-2x4", - "description": "Instance profile to be used for virtual instances" - }, - "group": 20000, - "label": "[root] var.profile", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "profile", - "simple_name": "var.profile", - "svg_id": "node_25", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", - "definition": { - "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "description": "SSH Public Key contents to be used" - }, - "group": 20000, - "label": "[root] var.ssh_public_key", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "ssh_public_key", - "simple_name": "var.ssh_public_key", - "svg_id": "node_26", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", - "definition": { - "default": "vpc-fs2020-lab3", - "description": "Name of your VPC" - }, - "group": 20000, - "label": "[root] var.vpc_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "vpc_name", - "simple_name": "var.vpc_name", - "svg_id": "node_27", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", - "definition": { - "default": "us-south-1", - "description": "Define the 1st zone of the region" - }, - "group": 20000, - "label": "[root] var.zone1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone1", - "simple_name": "var.zone1", - "svg_id": "node_28", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", - "definition": { - "default": "172.16.1.0/24", - "description": "CIDR block to be used for zone 1" - }, - "group": 20000, - "label": "[root] var.zone1_cidr", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone1_cidr", - "simple_name": "var.zone1_cidr", - "svg_id": "node_29", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", - "definition": { - "default": "us-south-2", - "description": "Define the 2nd zone of the region" - }, - "group": 20000, - "label": "[root] var.zone2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone2", - "simple_name": "var.zone2", - "svg_id": "node_30", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", - "definition": { - "default": "172.16.2.0/24", - "description": "CIDR block to be used for zone 2" - }, - "group": 20000, - "label": "[root] var.zone2_cidr", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone2_cidr", - "simple_name": "var.zone2_cidr", - "svg_id": "node_31", - "type": "var" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_32", - "type": "meta" - }, - { - "apply": {}, - "cluster": "root", - "definition": { - "generation": 2, - "region": "${var.ibmcloud_region}" - }, - "group": 20000, - "label": "[root] provider.ibm (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", - "svg_id": "node_33", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.template (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "template", - "simple_name": "provider.template (close)", - "svg_id": "node_34", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] root", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "", - "simple_name": "root", - "svg_id": "node_35", - "type": "" - } - ] -} diff --git a/npm/example/demo-2/demo-2.svg b/npm/example/demo-2/demo-2.svg deleted file mode 100644 index c0b9421..0000000 --- a/npm/example/demo-2/demo-2.svg +++ /dev/null @@ -1,669 +0,0 @@ - - - - - - -%3 - - -cluster[root] provider.ibm_var_ - - -cluster[root] ibm_is_ssh_key.ssh1_var_ - - -cluster[root] ibm_is_vpc.vpc1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 - - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - -cloud-init-apptier - - - -[root] provider.template - -provider - -template - - - -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - - - - -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - -instance1 - - - -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - -instance2 - - - -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - -ssh1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - -subnet1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - - - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - -lb1-listener - - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - -lb1-pool - - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] provider.ibm - -provider - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - - - - -[root] provider.ibm (close) - -provider - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - - - - \ No newline at end of file diff --git a/npm/example/demo-2/demonew-2.svg b/npm/example/demo-2/demonew-2.svg deleted file mode 100644 index 51abb94..0000000 --- a/npm/example/demo-2/demonew-2.svg +++ /dev/null @@ -1,750 +0,0 @@ - - - - - - -%3 - - -cluster[root] provider.ibm_var_ - - -cluster[root] ibm_is_ssh_key.ssh1_var_ - - -cluster[root] ibm_is_vpc.vpc1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 - - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - - - - -cloud-init-apptier - - - -[root] provider.template - -provider - - -template - - - -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - - - - -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - - -# - - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - - -+ - - -instance1 - - - -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - - -# - - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - - -+ - - -instance2 - - - -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - - - - -ssh1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - - -# - - -subnet1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - - - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - - -# - - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - - - - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - - - - -lb1-listener - - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - - - - -lb1-pool - - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - - --/+ - - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - - --/+ - - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - - - - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - - - - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] provider.ibm - -provider - - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - - -# - - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - - -# - - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - - - - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - - - - -[root] provider.ibm (close) - -provider - - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - - - - diff --git a/npm/example/demo-2/simple-demo-2.json b/npm/example/demo-2/simple-demo-2.json index e634320..c509b3d 100644 --- a/npm/example/demo-2/simple-demo-2.json +++ b/npm/example/demo-2/simple-demo-2.json @@ -2,386 +2,438 @@ "edges": [ { "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", + "source": "[root] ibm_cis.web_domain", "svg_id": "edge_0", - "target": "[root] ibm_iam_authorization_policy.policy" + "target": "[root] ibm_resource_group.web_group" }, { "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", + "source": "[root] ibm_cis_domain.web_domain", "svg_id": "edge_1", - "target": "[root] ibm_kp_key.test" + "target": "[root] ibm_cis.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", + "source": "[root] ibm_cis_domain.web_domain", "svg_id": "edge_2", - "target": "[root] ibm_resource_instance.cos_instance" + "target": "[root] var.domain" }, { "edge_type": 1, - "source": "[root] ibm_iam_authorization_policy.policy", + "source": "[root] ibm_cis_domain_settings.web_domain", "svg_id": "edge_3", - "target": "[root] provider.ibm" + "target": "[root] ibm_cis_domain.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_kp_key.test", + "source": "[root] ibm_resource_group.web_group", "svg_id": "edge_4", - "target": "[root] ibm_resource_instance.kp_instance" + "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_kp_key.test", + "source": "[root] ibm_resource_group.web_group", "svg_id": "edge_5", - "target": "[root] var.key_name" + "target": "[root] var.resource_group" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_6", - "target": "[root] provider.ibm" + "target": "[root] ibm_cis_domain_settings.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_7", - "target": "[root] var.cos_name" + "target": "[root] output.web_dns_name" }, { - "edge_type": 2, - "source": "[root] ibm_resource_instance.cos_instance", + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_8", - "target": "[root] var.location" + "target": "[root] var.datacenter1" }, { "edge_type": 2, - "source": "[root] ibm_resource_instance.cos_instance", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_9", - "target": "[root] var.pln" + "target": "[root] var.datacenter2" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", + "source": "[root] output.web_dns_name", "svg_id": "edge_10", - "target": "[root] provider.ibm" + "target": "[root] var.dns_name" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", + "source": "[root] output.web_dns_name", "svg_id": "edge_11", - "target": "[root] var.kp_name" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_12", - "target": "[root] ibm_cos_bucket.flex-us-south" + "target": "[root] var.domain" }, { "edge_type": 1, "source": "[root] provider.ibm (close)", - "svg_id": "edge_13", - "target": "[root] ibm_cos_bucket.flex-us-south" + "svg_id": "edge_12", + "target": "[root] ibm_cis_domain_settings.web_domain" }, { "edge_type": 1, "source": "[root] root", - "svg_id": "edge_14", + "svg_id": "edge_13", "target": "[root] meta.count-boundary (EachMode fixup)" }, { "edge_type": 1, "source": "[root] root", - "svg_id": "edge_15", + "svg_id": "edge_14", "target": "[root] provider.ibm (close)" }, { "edge_type": 3, - "source": "[root] var.cos_name", - "svg_id": "edge_16", - "target": "[root] var.location" - }, - { - "edge_type": 3, - "source": "[root] var.location", - "svg_id": "edge_17", - "target": "[root] var.pln" + "source": "[root] var.datacenter1", + "svg_id": "edge_15", + "target": "[root] var.datacenter2" } ], "nodes": [ { - "apply": "not yet applied", + "apply": null, "cluster": "root", + "cost": "no cost available", "definition": { - "bucket_name": "abuck3", - "key_protect": "${ibm_kp_key.test.id}", - "region_location": "us-south", - "resource_instance_id": "${ibm_resource_instance.cos_instance.id}", - "storage_class": "flex" + "location": "global", + "name": "web_domain", + "plan": "standard", + "resource_group_id": "${ibm_resource_group.web_group.id}" }, "group": 20000, - "label": "[root] ibm_cos_bucket.flex-us-south", + "label": "[root] ibm_cis.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cos_bucket.flex-us-south", + "address": "ibm_cis.web_domain", "change": { "actions": [ "create" ], "after": { - "bucket_name": "abuck3", - "cross_region_location": null, - "region_location": "us-south", - "single_site_location": null, - "storage_class": "flex", + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, "timeouts": null }, "after_unknown": { - "crn": true, + "guid": true, "id": true, - "key_protect": true, - "resource_instance_id": true, - "s3_endpoint_private": true, - "s3_endpoint_public": true + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "service": true, + "status": true }, "before": null }, "mode": "managed", - "name": "flex-us-south", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_cos_bucket", + "type": "ibm_cis", "values": { - "bucket_name": "abuck3", - "cross_region_location": null, - "region_location": "us-south", - "single_site_location": null, - "storage_class": "flex", + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, "timeouts": null } }, - "resource_name": "flex-us-south", - "simple_name": "ibm_cos_bucket.flex-us-south", + "policy": "no policy available", + "resource_name": "web_domain", + "simple_name": "ibm_cis.web_domain", "svg_id": "node_0", - "type": "ibm_cos_bucket" + "type": "ibm_cis" }, { - "apply": "not yet applied", - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] ibm_iam_authorization_policy.policy", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "policy", - "simple_name": "ibm_iam_authorization_policy.policy", - "svg_id": "node_1", - "type": "ibm_iam_authorization_policy" - }, - { - "apply": "not yet applied", + "apply": { + "instances": [], + "mode": "managed", + "name": "web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain" + }, "cluster": "root", + "cost": "no cost available", "definition": { - "key_name": "${var.key_name}", - "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", - "standard_key": false + "cis_id": "${ibm_cis.web_domain.id}", + "domain": "${var.domain}" }, "group": 20000, - "label": "[root] ibm_kp_key.test", + "label": "[root] ibm_cis_domain.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_kp_key.test", + "address": "ibm_cis_domain.web_domain", "change": { "actions": [ "create" ], "after": { - "encrypted_nonce": null, - "iv_value": null, - "key_name": "test_key2", - "standard_key": false, - "timeouts": null + "domain": "example.com" }, "after_unknown": { - "crn": true, + "cis_id": true, "id": true, - "key_id": true, - "key_protect_id": true, - "payload": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true + "name_servers": true, + "original_name_servers": true, + "paused": true, + "status": true }, "before": null }, "mode": "managed", - "name": "test", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_kp_key", + "type": "ibm_cis_domain", "values": { - "encrypted_nonce": null, - "iv_value": null, - "key_name": "test_key2", - "standard_key": false, - "timeouts": null + "domain": "example.com" } }, - "resource_name": "test", - "simple_name": "ibm_kp_key.test", - "svg_id": "node_2", - "type": "ibm_kp_key" + "policy": { + "decision": "pass", + "name": "web_domain", + "policies": [ + { + "capsule": "SecurityCapsule", + "control": "SecurityControl", + "rules": [ + "ibm_cis_domain_settings" + ], + "severity": "" + }, + { + "capsule": "ConfigCapsule", + "control": "ConfigurationControl", + "rules": [ + "too_many_admins", + "too_many_managers" + ], + "severity": "" + } + ], + "type": "ibm_cis_domain" + }, + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain.web_domain", + "svg_id": "node_1", + "type": "ibm_cis_domain" }, { - "apply": "not yet applied", + "apply": { + "instances": [], + "mode": "managed", + "name": "web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain_settings" + }, "cluster": "root", + "cost": "no cost available", "definition": { - "location": "${var.location}", - "name": "${var.cos_name}", - "plan": "${var.pln}", - "service": "cloud-object-storage" + "cis_id": "${ibm_cis.web_domain.id}", + "domain_id": "${ibm_cis_domain.web_domain.id}", + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" }, "group": 20000, - "label": "[root] ibm_resource_instance.cos_instance", + "label": "[root] ibm_cis_domain_settings.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_resource_instance.cos_instance", + "address": "ibm_cis_domain_settings.web_domain", "change": { "actions": [ "create" ], "after": { - "location": "globals", - "name": "test_cos2", - "parameters": null, - "plan": "standards", - "resource_group_id": null, - "service": "cloud-object-storage", - "service_endpoints": null, - "tags": null, - "timeouts": null + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" }, "after_unknown": { - "crn": true, - "guid": true, + "always_use_https": true, + "automatic_https_rewrites": true, + "brotli": true, + "browser_check": true, + "certificate_status": true, + "cis_id": true, + "cname_flattening": true, + "domain_id": true, + "hotlink_protection": true, + "http2": true, "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true + "image_load_optimization": true, + "image_size_optimization": true, + "ip_geolocation": true, + "ipv6": true, + "opportunistic_encryption": true, + "origin_error_page_pass_thru": true, + "prefetch_preload": true, + "pseudo_ipv4": true, + "response_buffering": true, + "script_load_optimization": true, + "server_side_exclude": true, + "tls_client_auth": true, + "true_client_ip_header": true, + "websockets": true }, "before": null }, "mode": "managed", - "name": "cos_instance", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_resource_instance", + "type": "ibm_cis_domain_settings", "values": { - "location": "globals", - "name": "test_cos2", - "parameters": null, - "plan": "standards", - "resource_group_id": null, - "service": "cloud-object-storage", - "service_endpoints": null, - "tags": null, - "timeouts": null + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" } }, - "resource_name": "cos_instance", - "simple_name": "ibm_resource_instance.cos_instance", - "svg_id": "node_3", - "type": "ibm_resource_instance" + "policy": { + "decision": "failed", + "name": "web_domain", + "policies": [ + { + "capsule": "SecurityCapsule", + "control": "SecurityControl", + "rules": [ + "ibm_cis_domain_settings" + ], + "severity": "" + }, + { + "capsule": "ConfigCapsule", + "control": "ConfigurationControl", + "rules": [ + "too_many_admins", + "too_many_managers" + ], + "severity": "" + } + ], + "type": "ibm_cis_domain_settings" + }, + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain_settings.web_domain", + "svg_id": "node_2", + "type": "ibm_cis_domain_settings" }, { - "apply": "not yet applied", + "apply": { + "instances": [ + { + "attributes": { + "default": false, + "id": "769cf60b1ecc4cb092cab5e7af075d3f", + "name": "gilad-test-group1", + "quota_id": null, + "state": "ACTIVE", + "tags": null + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "web_group", + "provider": "provider.ibm", + "type": "ibm_resource_group" + }, "cluster": "root", + "cost": "no cost available", "definition": { - "location": "us-south", - "name": "${var.kp_name}", - "plan": "tiered-pricing", - "service": "mks" + "name": "${var.resource_group}" }, "group": 20000, - "label": "[root] ibm_resource_instance.kp_instance", + "label": "[root] ibm_resource_group.web_group", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_resource_instance.kp_instance", + "address": "ibm_resource_group.web_group", "change": { "actions": [ "create" ], "after": { - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "mks", - "service_endpoints": null, - "tags": null, - "timeouts": null + "name": "gilad-test-group", + "quota_id": null, + "tags": null }, "after_unknown": { - "crn": true, - "guid": true, + "default": true, "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true + "state": true }, "before": null }, "mode": "managed", - "name": "kp_instance", + "name": "web_group", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_resource_instance", + "type": "ibm_resource_group", "values": { - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "mks", - "service_endpoints": null, - "tags": null, - "timeouts": null + "name": "gilad-test-group", + "quota_id": null, + "tags": null } }, - "resource_name": "kp_instance", - "simple_name": "ibm_resource_instance.kp_instance", + "policy": "no policy available", + "resource_name": "web_group", + "simple_name": "ibm_resource_group.web_group", + "svg_id": "node_3", + "type": "ibm_resource_group" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "value": "http://${var.dns_name}${var.domain}" + }, + "group": 20000, + "label": "[root] output.web_dns_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "web_dns_name", + "simple_name": "output.web_dns_name", "svg_id": "node_4", - "type": "ibm_resource_instance" + "type": "output" }, { "apply": {}, "cluster": "root", - "definition": "", + "cost": "cost data to be displayed here", + "definition": {}, "group": 20000, "label": "[root] provider.ibm", "module": "root", @@ -389,104 +441,119 @@ "root" ], "plan": {}, + "policy": "policy data to be displayed here", "resource_name": "ibm", "simple_name": "provider.ibm", "svg_id": "node_5", "type": "provider" }, { - "apply": "not yet applied", - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "cost": "no cost available", "definition": { - "default": "test_cos2" + "default": "lon02" }, "group": 20000, - "label": "[root] var.cos_name", + "label": "[root] var.datacenter1", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "cos_name", - "simple_name": "var.cos_name", + "policy": "no policy available", + "resource_name": "datacenter1", + "simple_name": "var.datacenter1", "svg_id": "node_6", "type": "var" }, { - "apply": "not yet applied", - "cluster": "cluster[root] ibm_kp_key.test_var_", + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "cost": "no cost available", "definition": { - "default": "test_key2" + "default": "ams03" }, "group": 20000, - "label": "[root] var.key_name", + "label": "[root] var.datacenter2", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "key_name", - "simple_name": "var.key_name", + "policy": "no policy available", + "resource_name": "datacenter2", + "simple_name": "var.datacenter2", "svg_id": "node_7", "type": "var" }, { - "apply": "not yet applied", - "cluster": "cluster[root] ibm_resource_instance.kp_instance_var_", + "apply": null, + "cluster": "cluster[root] output.web_dns_name_var_", + "cost": "no cost available", "definition": { - "default": "test_kp2" + "default": "", + "description": "DNS name (prefix) for website, including '.', 'www.'" }, "group": 20000, - "label": "[root] var.kp_name", + "label": "[root] var.dns_name", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "kp_name", - "simple_name": "var.kp_name", + "policy": "no policy available", + "resource_name": "dns_name", + "simple_name": "var.dns_name", "svg_id": "node_8", "type": "var" }, { - "apply": "not yet applied", - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "apply": null, + "cluster": "root", + "cost": "no cost available", "definition": { - "default": "globals" + "default": "example.com", + "description": "DNS Domain for web server" }, "group": 20000, - "label": "[root] var.location", + "label": "[root] var.domain", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "location", - "simple_name": "var.location", + "policy": "no policy available", + "resource_name": "domain", + "simple_name": "var.domain", "svg_id": "node_9", "type": "var" }, { - "apply": "not yet applied", - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "apply": null, + "cluster": "cluster[root] ibm_resource_group.web_group_var_", + "cost": "no cost available", "definition": { - "default": "standards" + "default": "gilad-test-group1", + "description": "IBM Cloud Resource Group" }, "group": 20000, - "label": "[root] var.pln", + "label": "[root] var.resource_group", "module": "root", "modules": [ "root" ], "plan": null, - "resource_name": "pln", - "simple_name": "var.pln", + "policy": "no policy available", + "resource_name": "resource_group", + "simple_name": "var.resource_group", "svg_id": "node_10", "type": "var" }, { "apply": {}, "cluster": "root", + "cost": {}, "definition": "", "group": 20000, "label": "[root] meta.count-boundary (EachMode fixup)", @@ -495,6 +562,7 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "count-boundary", "simple_name": "meta.count-boundary (EachMode fixup)", "svg_id": "node_11", @@ -503,7 +571,8 @@ { "apply": {}, "cluster": "root", - "definition": "", + "cost": {}, + "definition": {}, "group": 20000, "label": "[root] provider.ibm (close)", "module": "root", @@ -511,6 +580,7 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "ibm", "simple_name": "provider.ibm (close)", "svg_id": "node_12", @@ -519,6 +589,7 @@ { "apply": {}, "cluster": "root", + "cost": {}, "definition": "", "group": 20000, "label": "[root] root", @@ -527,10 +598,12 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "", "simple_name": "root", "svg_id": "node_13", "type": "" } - ] -} + ], + "totalcost": "" +} \ No newline at end of file diff --git a/npm/example/demo-2/simple-demo-2.svg b/npm/example/demo-2/simple-demo-2.svg index 5521d4d..1ffd0a0 100644 --- a/npm/example/demo-2/simple-demo-2.svg +++ b/npm/example/demo-2/simple-demo-2.svg @@ -1,231 +1,265 @@ - - - - -%3 - + + + + -cluster[root] ibm_resource_instance.cos_instance_var_ +cluster[root] meta.count-boundary (EachMode fixup)_var_ -cluster[root] ibm_kp_key.test_var_ +cluster[root] output.web_dns_name_var_ -cluster[root] ibm_resource_instance.kp_instance_var_ +cluster[root] ibm_resource_group.web_group_var_ - + -[root] ibm_cos_bucket.flex-us-south - -ibm_cos_bucket - - -+ - - -flex-us-south - - - -[root] ibm_kp_key.test - -ibm_kp_key - - -+ - - -test - - +[root] ibm_cis.web_domain + +ibm_cis + +web_domain + +state + ++ + +apply + + +controls + + + +[root] ibm_resource_group.web_group + +ibm_resource_group + +web_group + +state + ++ + +apply + + +controls + + -[root] ibm_cos_bucket.flex-us-south->[root] ibm_kp_key.test - - +[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group + + - - -[root] ibm_resource_instance.cos_instance - -ibm_resource_instance - - -+ - - -cos_instance - - + + +[root] ibm_cis_domain.web_domain + +ibm_cis_domain + +web_domain + +state + ++ + +apply + + +controls + + -[root] ibm_cos_bucket.flex-us-south->[root] ibm_resource_instance.cos_instance - - +[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain + + - - -[root] ibm_resource_instance.kp_instance - -ibm_resource_instance - - -+ - - -kp_instance - - + + +[root] var.domain + +var + +domain + + + -[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance - - +[root] ibm_cis_domain.web_domain->[root] var.domain + + - - -[root] var.key_name - -var - - -key_name - - + + +[root] ibm_cis_domain_settings.web_domain + +ibm_cis_domain_settings + +web_domain + +state + ++ + +apply + + +controls + + -[root] ibm_kp_key.test->[root] var.key_name - - +[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain + + - + [root] provider.ibm - -provider - - -ibm + +provider + +ibm + - + -[root] ibm_resource_instance.cos_instance->[root] provider.ibm - - +[root] ibm_resource_group.web_group->[root] provider.ibm + + - - -[root] var.cos_name - -var - - -cos_name - - + + +[root] var.resource_group + +var + +resource_group + + + -[root] ibm_resource_instance.cos_instance->[root] var.cos_name - - +[root] ibm_resource_group.web_group->[root] var.resource_group + + - - -[root] ibm_resource_instance.kp_instance->[root] provider.ibm - - + + +[root] output.web_dns_name + +output + +web_dns_name + - - -[root] var.kp_name - -var - - -kp_name - - - -[root] ibm_resource_instance.kp_instance->[root] var.kp_name - - + + +[root] output.web_dns_name->[root] var.domain + + + + + +[root] var.dns_name + +var + +dns_name + + + + +[root] output.web_dns_name->[root] var.dns_name + + - + [root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary + +meta + +count-boundary + - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_cos_bucket.flex-us-south - - + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_cis_domain_settings.web_domain + + + + + +[root] meta.count-boundary (EachMode fixup)->[root] output.web_dns_name + + + + + +[root] var.datacenter1 + +var + +datacenter1 + + + + +[root] meta.count-boundary (EachMode fixup)->[root] var.datacenter1 + + - + [root] provider.ibm (close) - -provider - - -ibm + +provider + +ibm + - - -[root] provider.ibm (close)->[root] ibm_cos_bucket.flex-us-south - - + + +[root] provider.ibm (close)->[root] ibm_cis_domain_settings.web_domain + + - + [root] root - -[root] root + +[root] root - + [root] root->[root] meta.count-boundary (EachMode fixup) - - + + - + [root] root->[root] provider.ibm (close) - - + + - - -[root] var.location - -var - - -location - - - -[root] var.cos_name->[root] var.location - + + +[root] var.datacenter2 + +var + +datacenter2 + - - -[root] var.pln - -var - - -pln - - + -[root] var.location->[root] var.pln - +[root] var.datacenter1->[root] var.datacenter2 + - diff --git a/npm/example/demo-3/demo-3.json b/npm/example/demo-3/demo-3.json deleted file mode 100644 index 6d1e8c1..0000000 --- a/npm/example/demo-3/demo-3.json +++ /dev/null @@ -1,1922 +0,0 @@ -{ - "edges": [ - { - "edge_type": 1, - "source": "[root] data.template_cloudinit_config.cloud-init-apptier", - "svg_id": "edge_0", - "target": "[root] provider.template" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_floating_ip.floatingip1", - "svg_id": "edge_1", - "target": "[root] ibm_is_instance.instance1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_floating_ip.floatingip2", - "svg_id": "edge_2", - "target": "[root] ibm_is_instance.instance2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_3", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_4", - "target": "[root] ibm_is_ssh_key.ssh1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_5", - "target": "[root] ibm_is_subnet.subnet1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_6", - "target": "[root] var.image" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance1", - "svg_id": "edge_7", - "target": "[root] var.profile" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_8", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_9", - "target": "[root] ibm_is_ssh_key.ssh1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_10", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_11", - "target": "[root] var.image" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_instance.instance2", - "svg_id": "edge_12", - "target": "[root] var.profile" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb.lb1", - "svg_id": "edge_13", - "target": "[root] ibm_is_subnet.subnet1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb.lb1", - "svg_id": "edge_14", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_listener.lb1-listener", - "svg_id": "edge_15", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool.lb1-pool", - "svg_id": "edge_16", - "target": "[root] ibm_is_lb.lb1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "edge_17", - "target": "[root] ibm_is_instance.instance1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "edge_18", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "edge_19", - "target": "[root] ibm_is_instance.instance2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "edge_20", - "target": "[root] ibm_is_lb_pool.lb1-pool" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "edge_21", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "edge_22", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "edge_23", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "edge_24", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_ssh_key.ssh1", - "svg_id": "edge_25", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_ssh_key.ssh1", - "svg_id": "edge_26", - "target": "[root] var.ssh_public_key" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet1", - "svg_id": "edge_27", - "target": "[root] ibm_is_vpc_address_prefix.vpc-ap1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet2", - "svg_id": "edge_28", - "target": "[root] ibm_is_vpc_address_prefix.vpc-ap2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_29", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_30", - "target": "[root] var.vpc_name" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_31", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_32", - "target": "[root] var.zone1" - }, - { - "edge_type": 2, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "edge_33", - "target": "[root] var.zone1_cidr" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_34", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_35", - "target": "[root] var.zone2" - }, - { - "edge_type": 2, - "source": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "edge_36", - "target": "[root] var.zone2_cidr" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_37", - "target": "[root] ibm_is_lb_listener.lb1-listener" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_38", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_39", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_40", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_41", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_42", - "target": "[root] output.FloatingIP-1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_43", - "target": "[root] output.FloatingIP-2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_44", - "target": "[root] output.LB-Hostname" - }, - { - "edge_type": 1, - "source": "[root] output.FloatingIP-1", - "svg_id": "edge_45", - "target": "[root] ibm_is_floating_ip.floatingip1" - }, - { - "edge_type": 1, - "source": "[root] output.FloatingIP-2", - "svg_id": "edge_46", - "target": "[root] ibm_is_floating_ip.floatingip2" - }, - { - "edge_type": 1, - "source": "[root] output.LB-Hostname", - "svg_id": "edge_47", - "target": "[root] ibm_is_lb.lb1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_48", - "target": "[root] ibm_is_lb_listener.lb1-listener" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_49", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_50", - "target": "[root] ibm_is_lb_pool_member.lb1-pool-member2" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_51", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_52", - "target": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm", - "svg_id": "edge_53", - "target": "[root] var.ibmcloud_region" - }, - { - "edge_type": 1, - "source": "[root] provider.template (close)", - "svg_id": "edge_54", - "target": "[root] data.template_cloudinit_config.cloud-init-apptier" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_55", - "target": "[root] meta.count-boundary (EachMode fixup)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_56", - "target": "[root] provider.ibm (close)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_57", - "target": "[root] provider.template (close)" - }, - { - "edge_type": 3, - "source": "[root] var.zone1", - "svg_id": "edge_58", - "target": "[root] var.zone1_cidr" - }, - { - "edge_type": 3, - "source": "[root] var.zone2", - "svg_id": "edge_59", - "target": "[root] var.zone2_cidr" - } - ], - "nodes": [ - { - "apply": { - "instances": [ - { - "attributes": { - "base64_encode": false, - "gzip": false, - "id": "708834281", - "part": [ - { - "content": "#cloud-config\npackages:\n - nginx\n\n", - "content_type": "", - "filename": "", - "merge_type": "" - } - ], - "rendered": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n" - }, - "schema_version": 0 - } - ], - "mode": "data", - "name": "cloud-init-apptier", - "provider": "provider.template", - "type": "template_cloudinit_config" - }, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] data.template_cloudinit_config.cloud-init-apptier", - "module": "root", - "modules": [ - "root" - ], - "plan": "data-source", - "resource_name": "cloud-init-apptier", - "simple_name": "data.template_cloudinit_config.cloud-init-apptier", - "svg_id": "node_0", - "type": "template_cloudinit_config" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "floatingip1", - "provider": "provider.ibm", - "type": "ibm_is_floating_ip" - }, - "cluster": "root", - "definition": { - "name": "fip6", - "target": "${ibm_is_instance.instance1.primary_network_interface[0].id}" - }, - "group": 20000, - "label": "[root] ibm_is_floating_ip.floatingip1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_floating_ip.floatingip1", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "fip6", - "timeouts": null - }, - "after_unknown": { - "address": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "target": true, - "zone": true - }, - "before": null - }, - "mode": "managed", - "name": "floatingip1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_floating_ip", - "values": { - "name": "fip6", - "timeouts": null - } - }, - "resource_name": "floatingip1", - "simple_name": "ibm_is_floating_ip.floatingip1", - "svg_id": "node_1", - "type": "ibm_is_floating_ip" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "floatingip2", - "provider": "provider.ibm", - "type": "ibm_is_floating_ip" - }, - "cluster": "root", - "definition": { - "name": "fip7", - "target": "${ibm_is_instance.instance2.primary_network_interface[0].id}" - }, - "group": 20000, - "label": "[root] ibm_is_floating_ip.floatingip2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_floating_ip.floatingip2", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "fip7", - "timeouts": null - }, - "after_unknown": { - "address": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "target": true, - "zone": true - }, - "before": null - }, - "mode": "managed", - "name": "floatingip2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_floating_ip", - "values": { - "name": "fip7", - "timeouts": null - } - }, - "resource_name": "floatingip2", - "simple_name": "ibm_is_floating_ip.floatingip2", - "svg_id": "node_2", - "type": "ibm_is_floating_ip" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "instance1", - "provider": "provider.ibm", - "type": "ibm_is_instance" - }, - "cluster": "root", - "definition": { - "image": "${var.image}", - "keys": [ - "${ibm_is_ssh_key.ssh1.id}" - ], - "name": "instance6", - "primary_network_interface": { - "subnet": "${ibm_is_subnet.subnet1.id}" - }, - "profile": "${var.profile}", - "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_instance.instance1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_instance.instance1", - "change": { - "actions": [ - "create" - ], - "after": { - "generation": null, - "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance6", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "54376-g", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-1" - }, - "after_unknown": { - "boot_volume": true, - "gpu": true, - "id": true, - "keys": true, - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true, - "subnet": true - } - ], - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vcpu": true, - "volume_attachments": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "instance1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_instance", - "values": { - "generation": null, - "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance6", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "54376-g", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-1" - } - }, - "resource_name": "instance1", - "simple_name": "ibm_is_instance.instance1", - "svg_id": "node_3", - "type": "ibm_is_instance" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "instance2", - "provider": "provider.ibm", - "type": "ibm_is_instance" - }, - "cluster": "root", - "definition": { - "image": "${var.image}", - "keys": [ - "${ibm_is_ssh_key.ssh1.id}" - ], - "name": "instance7", - "primary_network_interface": { - "subnet": "${ibm_is_subnet.subnet2.id}" - }, - "profile": "${var.profile}", - "user_data": "${data.template_cloudinit_config.cloud-init-apptier.rendered}", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_instance.instance2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_instance.instance2", - "change": { - "actions": [ - "create" - ], - "after": { - "generation": null, - "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance7", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "54376-g", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-2" - }, - "after_unknown": { - "boot_volume": true, - "gpu": true, - "id": true, - "keys": true, - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true, - "subnet": true - } - ], - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vcpu": true, - "volume_attachments": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "instance2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_instance", - "values": { - "generation": null, - "image": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", - "name": "instance7", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": null - } - ], - "profile": "54376-g", - "timeouts": null, - "user_data": "Content-Type: multipart/mixed; boundary=\"MIMEBOUNDARY\"\nMIME-Version: 1.0\r\n\r\n--MIMEBOUNDARY\r\nContent-Transfer-Encoding: 7bit\r\nContent-Type: text/plain\r\nMime-Version: 1.0\r\n\r\n#cloud-config\npackages:\n - nginx\n\n\r\n--MIMEBOUNDARY--\r\n", - "volumes": null, - "zone": "us-south-2" - } - }, - "resource_name": "instance2", - "simple_name": "ibm_is_instance.instance2", - "svg_id": "node_4", - "type": "ibm_is_instance" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "lb1", - "provider": "provider.ibm", - "type": "ibm_is_lb" - }, - "cluster": "root", - "definition": { - "name": "${var.vpc_name}-lb", - "subnets": [ - "${ibm_is_subnet.subnet1.id}", - "${ibm_is_subnet.subnet2.id}" - ] - }, - "group": 20000, - "label": "[root] ibm_is_lb.lb1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb.lb1", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "vpc-fs2020-lab3-lb", - "timeouts": null, - "type": "public" - }, - "after_unknown": { - "hostname": true, - "id": true, - "operating_status": true, - "private_ips": true, - "public_ips": true, - "resource_controller_url": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "status": true, - "subnets": true - }, - "before": null - }, - "mode": "managed", - "name": "lb1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb", - "values": { - "name": "vpc-fs2020-lab3-lb", - "timeouts": null, - "type": "public" - } - }, - "resource_name": "lb1", - "simple_name": "ibm_is_lb.lb1", - "svg_id": "node_5", - "type": "ibm_is_lb" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "lb1-listener", - "provider": "provider.ibm", - "type": "ibm_is_lb_listener" - }, - "cluster": "root", - "definition": { - "default_pool": "${element(split(\"/\", ibm_is_lb_pool.lb1-pool.id), 1)}", - "lb": "${ibm_is_lb.lb1.id}", - "port": "80", - "protocol": "http" - }, - "group": 20000, - "label": "[root] ibm_is_lb_listener.lb1-listener", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_listener.lb1-listener", - "change": { - "actions": [ - "create" - ], - "after": { - "certificate_instance": null, - "connection_limit": null, - "port": 80, - "protocol": "http", - "timeouts": null - }, - "after_unknown": { - "default_pool": true, - "id": true, - "lb": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "lb1-listener", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_listener", - "values": { - "certificate_instance": null, - "connection_limit": null, - "port": 80, - "protocol": "http", - "timeouts": null - } - }, - "resource_name": "lb1-listener", - "simple_name": "ibm_is_lb_listener.lb1-listener", - "svg_id": "node_6", - "type": "ibm_is_lb_listener" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "lb1-pool", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool" - }, - "cluster": "root", - "definition": { - "algorithm": "round_robin", - "health_delay": "5", - "health_monitor_url": "/", - "health_retries": "2", - "health_timeout": "2", - "health_type": "http", - "lb": "${ibm_is_lb.lb1.id}", - "name": "${var.vpc_name}-lb1-pool", - "protocol": "http" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool.lb1-pool", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool.lb1-pool", - "change": { - "actions": [ - "create" - ], - "after": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - }, - "after_unknown": { - "health_monitor_port": true, - "id": true, - "lb": true, - "provisioning_status": true - }, - "before": null - }, - "mode": "managed", - "name": "lb1-pool", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool", - "values": { - "algorithm": "round_robin", - "health_delay": 5, - "health_monitor_url": "/", - "health_retries": 2, - "health_timeout": 2, - "health_type": "http", - "name": "vpc-fs2020-lab3-lb1-pool", - "protocol": "http", - "session_persistence_cookie_name": null, - "session_persistence_type": null, - "timeouts": null - } - }, - "resource_name": "lb1-pool", - "simple_name": "ibm_is_lb_pool.lb1-pool", - "svg_id": "node_7", - "type": "ibm_is_lb_pool" - }, - { - "apply": { - "each": "list", - "instances": [], - "mode": "managed", - "name": "lb1-pool-member1", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool_member" - }, - "cluster": "root", - "definition": { - "count": 1, - "lb": "${ibm_is_lb.lb1.id}", - "pool": "${ibm_is_lb_pool.lb1-pool.id}", - "port": "80", - "target_address": "${ibm_is_instance.instance1.primary_network_interface[0].primary_ipv4_address}" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool_member.lb1-pool-member1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool_member.lb1-pool-member1[0]", - "change": { - "actions": [ - "create" - ], - "after": { - "port": 80, - "timeouts": null - }, - "after_unknown": { - "health": true, - "href": true, - "id": true, - "lb": true, - "pool": true, - "provisioning_status": true, - "target_address": true, - "weight": true - }, - "before": null - }, - "index": 0, - "mode": "managed", - "name": "lb1-pool-member1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool_member", - "values": { - "port": 80, - "timeouts": null - } - }, - "resource_name": "lb1-pool-member1", - "simple_name": "ibm_is_lb_pool_member.lb1-pool-member1", - "svg_id": "node_8", - "type": "ibm_is_lb_pool_member" - }, - { - "apply": { - "each": "list", - "instances": [], - "mode": "managed", - "name": "lb1-pool-member2", - "provider": "provider.ibm", - "type": "ibm_is_lb_pool_member" - }, - "cluster": "root", - "definition": { - "count": 1, - "lb": "${ibm_is_lb.lb1.id}", - "pool": "${ibm_is_lb_pool.lb1-pool.id}", - "port": "80", - "target_address": "${ibm_is_instance.instance2.primary_network_interface[0].primary_ipv4_address}" - }, - "group": 20000, - "label": "[root] ibm_is_lb_pool_member.lb1-pool-member2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_lb_pool_member.lb1-pool-member2[0]", - "change": { - "actions": [ - "create" - ], - "after": { - "port": 80, - "timeouts": null - }, - "after_unknown": { - "health": true, - "href": true, - "id": true, - "lb": true, - "pool": true, - "provisioning_status": true, - "target_address": true, - "weight": true - }, - "before": null - }, - "index": 0, - "mode": "managed", - "name": "lb1-pool-member2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_lb_pool_member", - "values": { - "port": 80, - "timeouts": null - } - }, - "resource_name": "lb1-pool-member2", - "simple_name": "ibm_is_lb_pool_member.lb1-pool-member2", - "svg_id": "node_9", - "type": "ibm_is_lb_pool_member" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "sg1_tcp_rule_22", - "provider": "provider.ibm", - "type": "ibm_is_security_group_rule" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_floating_ip.floatingip1}", - "${ibm_is_floating_ip.floatingip2}" - ], - "direction": "inbound", - "group": "${ibm_is_vpc.vpc1.default_security_group}", - "remote": "0.0.0.0/0", - "tcp": { - "port_max": "22", - "port_min": "22" - } - }, - "group": 20000, - "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_22", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_security_group_rule.sg1_tcp_rule_22", - "change": { - "actions": [ - "create" - ], - "after": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - }, - "after_unknown": { - "group": true, - "icmp": [], - "id": true, - "rule_id": true, - "tcp": [ - {} - ], - "udp": [] - }, - "before": null - }, - "mode": "managed", - "name": "sg1_tcp_rule_22", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_security_group_rule", - "values": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 22, - "port_min": 22 - } - ], - "udp": [] - } - }, - "resource_name": "sg1_tcp_rule_22", - "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_22", - "svg_id": "node_10", - "type": "ibm_is_security_group_rule" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "sg1_tcp_rule_80", - "provider": "provider.ibm", - "type": "ibm_is_security_group_rule" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_floating_ip.floatingip1}", - "${ibm_is_floating_ip.floatingip2}" - ], - "direction": "inbound", - "group": "${ibm_is_vpc.vpc1.default_security_group}", - "remote": "0.0.0.0/0", - "tcp": { - "port_max": "80", - "port_min": "80" - } - }, - "group": 20000, - "label": "[root] ibm_is_security_group_rule.sg1_tcp_rule_80", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_security_group_rule.sg1_tcp_rule_80", - "change": { - "actions": [ - "create" - ], - "after": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - }, - "after_unknown": { - "group": true, - "icmp": [], - "id": true, - "rule_id": true, - "tcp": [ - {} - ], - "udp": [] - }, - "before": null - }, - "mode": "managed", - "name": "sg1_tcp_rule_80", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_security_group_rule", - "values": { - "direction": "inbound", - "icmp": [], - "ip_version": "ipv4", - "remote": "0.0.0.0/0", - "tcp": [ - { - "port_max": 80, - "port_min": 80 - } - ], - "udp": [] - } - }, - "resource_name": "sg1_tcp_rule_80", - "simple_name": "ibm_is_security_group_rule.sg1_tcp_rule_80", - "svg_id": "node_11", - "type": "ibm_is_security_group_rule" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "name": "ssh10", - "public_key": "${var.ssh_public_key}" - }, - "group": 20000, - "label": "[root] ibm_is_ssh_key.ssh1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_ssh_key.ssh1", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local" - }, - "after_unknown": { - "fingerprint": true, - "id": true, - "length": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "type": true - }, - "before": null - }, - "mode": "managed", - "name": "ssh1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_ssh_key", - "values": { - "name": "ssh10", - "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local" - } - }, - "resource_name": "ssh1", - "simple_name": "ibm_is_ssh_key.ssh1", - "svg_id": "node_12", - "type": "ibm_is_ssh_key" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "subnet1", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_vpc_address_prefix.vpc-ap1}" - ], - "ipv4_cidr_block": "${var.zone1_cidr}", - "name": "subnet3", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet1", - "change": { - "actions": [ - "create" - ], - "after": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "name": "subnet3", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-1" - }, - "after_unknown": { - "available_ipv4_address_count": true, - "id": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "total_ipv4_address_count": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "subnet1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.1.0/24", - "name": "subnet3", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-1" - } - }, - "resource_name": "subnet1", - "simple_name": "ibm_is_subnet.subnet1", - "svg_id": "node_13", - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "subnet2", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, - "cluster": "root", - "definition": { - "depends_on": [ - "${ibm_is_vpc_address_prefix.vpc-ap2}" - ], - "ipv4_cidr_block": "${var.zone2_cidr}", - "name": "subnet4", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet2", - "change": { - "actions": [ - "create" - ], - "after": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "name": "subnet4", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-2" - }, - "after_unknown": { - "available_ipv4_address_count": true, - "id": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "total_ipv4_address_count": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "subnet2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "ip_version": "ipv4", - "ipv4_cidr_block": "172.16.2.0/24", - "name": "subnet4", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-2" - } - }, - "resource_name": "subnet2", - "simple_name": "ibm_is_subnet.subnet2", - "svg_id": "node_14", - "type": "ibm_is_subnet" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "name": "${var.vpc_name}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc.vpc1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc.vpc1", - "change": { - "actions": [ - "create" - ], - "after": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "vpc-fs2020-lab3", - "tags": null, - "timeouts": null - }, - "after_unknown": { - "default_network_acl": true, - "default_security_group": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "vpc1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc", - "values": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "vpc-fs2020-lab3", - "tags": null, - "timeouts": null - } - }, - "resource_name": "vpc1", - "simple_name": "ibm_is_vpc.vpc1", - "svg_id": "node_15", - "type": "ibm_is_vpc" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "vpc-ap1", - "provider": "provider.ibm", - "type": "ibm_is_vpc_address_prefix" - }, - "cluster": "root", - "definition": { - "cidr": "${var.zone1_cidr}", - "name": "vpc-ap3", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone1}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc_address_prefix.vpc-ap1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc_address_prefix.vpc-ap1", - "change": { - "actions": [ - "create" - ], - "after": { - "cidr": "172.16.1.0/24", - "name": "vpc-ap3", - "zone": "us-south-1" - }, - "after_unknown": { - "has_subnets": true, - "id": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "vpc-ap1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc_address_prefix", - "values": { - "cidr": "172.16.1.0/24", - "name": "vpc-ap3", - "zone": "us-south-1" - } - }, - "resource_name": "vpc-ap1", - "simple_name": "ibm_is_vpc_address_prefix.vpc-ap1", - "svg_id": "node_16", - "type": "ibm_is_vpc_address_prefix" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "vpc-ap2", - "provider": "provider.ibm", - "type": "ibm_is_vpc_address_prefix" - }, - "cluster": "root", - "definition": { - "cidr": "${var.zone2_cidr}", - "name": "vpc-ap4", - "vpc": "${ibm_is_vpc.vpc1.id}", - "zone": "${var.zone2}" - }, - "group": 20000, - "label": "[root] ibm_is_vpc_address_prefix.vpc-ap2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc_address_prefix.vpc-ap2", - "change": { - "actions": [ - "create" - ], - "after": { - "cidr": "172.16.2.0/24", - "name": "vpc-ap4", - "zone": "us-south-2" - }, - "after_unknown": { - "has_subnets": true, - "id": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "vpc-ap2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc_address_prefix", - "values": { - "cidr": "172.16.2.0/24", - "name": "vpc-ap4", - "zone": "us-south-2" - } - }, - "resource_name": "vpc-ap2", - "simple_name": "ibm_is_vpc_address_prefix.vpc-ap2", - "svg_id": "node_17", - "type": "ibm_is_vpc_address_prefix" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1", - "definition": { - "value": "${ibm_is_floating_ip.floatingip1.address}" - }, - "group": 20000, - "label": "[root] output.FloatingIP-1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "FloatingIP-1", - "simple_name": "output.FloatingIP-1", - "svg_id": "node_18", - "type": "output" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2", - "definition": { - "value": "${ibm_is_floating_ip.floatingip2.address}" - }, - "group": 20000, - "label": "[root] output.FloatingIP-2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "FloatingIP-2", - "simple_name": "output.FloatingIP-2", - "svg_id": "node_19", - "type": "output" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1", - "definition": { - "value": "http://${ibm_is_lb.lb1.hostname}" - }, - "group": 20000, - "label": "[root] output.LB-Hostname", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "LB-Hostname", - "simple_name": "output.LB-Hostname", - "svg_id": "node_20", - "type": "output" - }, - { - "apply": {}, - "cluster": "root", - "definition": { - "generation": 2, - "region": "${var.ibmcloud_region}" - }, - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_21", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.template", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "template", - "simple_name": "provider.template", - "svg_id": "node_22", - "type": "provider" - }, - { - "apply": null, - "cluster": "cluster[root] provider.ibm_var_", - "definition": { - "default": "us", - "description": "Preferred IBM Cloud region to use for your infrastructure" - }, - "group": 20000, - "label": "[root] var.ibmcloud_region", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "ibmcloud_region", - "simple_name": "var.ibmcloud_region", - "svg_id": "node_23", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "default": "r3006-14140f94-fcc4-11e9-96e7-a72723715315", - "description": "OS Image ID to be used for virtual instances" - }, - "group": 20000, - "label": "[root] var.image", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "image", - "simple_name": "var.image", - "svg_id": "node_24", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "definition": { - "default": "54376-g", - "description": "Instance profile to be used for virtual instances" - }, - "group": 20000, - "label": "[root] var.profile", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "profile", - "simple_name": "var.profile", - "svg_id": "node_25", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_ssh_key.ssh1_var_", - "definition": { - "default": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCgDGui3AghFSuOm0BKr70Hljv5OFIg8GLFiCBUuKR+SVcB4E51Z1KGXxsaijX3+pfKJHKZvd1mr3XAUQNutguZT1PpA7gksiIZfZNonAM7QDoq/BMq7AsSkxL/+4Ea3HOwJMFm2jSFzwwNCogvv4xK4+KKeuw3AI6lCDSetzs5maqwzqVDKGMfzwDyNcJaH20Nr4Twoy85MdrddlJi3eLq2xWytw+EdJvUXUXrsnrdORiK9kKx8D1Wn5TjTw3W90CM0gk1skNnT9D1Rpo8Lq2IXBDw6SCoSU+YTpQZERRNSB35BMDrRqPNC3cDwnL0clp64KJDmjQYsBreD4H5VdRXcHOagh2uZ6MbUz5p5tvvZpVLldt6pTmbZ8jk6Vo1WMnp65NQrUZsRoh9JxzpXldaJgb8ieCoj9x78jMEMd3EgtkAowE8MALVOl7y/4WMvwMmMt+4uVw1TJjozI38qtLBxUWdzjOF2KoT/uXPP7bRvMBsHHoVlUMRWAV7KKwPJrk= nishubharti@Nishus-MacBook-Pro.local", - "description": "SSH Public Key contents to be used" - }, - "group": 20000, - "label": "[root] var.ssh_public_key", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "ssh_public_key", - "simple_name": "var.ssh_public_key", - "svg_id": "node_26", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc.vpc1_var_", - "definition": { - "default": "vpc-fs2020-lab3", - "description": "Name of your VPC" - }, - "group": 20000, - "label": "[root] var.vpc_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "vpc_name", - "simple_name": "var.vpc_name", - "svg_id": "node_27", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", - "definition": { - "default": "us-south-1", - "description": "Define the 1st zone of the region" - }, - "group": 20000, - "label": "[root] var.zone1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone1", - "simple_name": "var.zone1", - "svg_id": "node_28", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_", - "definition": { - "default": "172.16.1.0/24", - "description": "CIDR block to be used for zone 1" - }, - "group": 20000, - "label": "[root] var.zone1_cidr", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone1_cidr", - "simple_name": "var.zone1_cidr", - "svg_id": "node_29", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", - "definition": { - "default": "us-south-2", - "description": "Define the 2nd zone of the region" - }, - "group": 20000, - "label": "[root] var.zone2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone2", - "simple_name": "var.zone2", - "svg_id": "node_30", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_", - "definition": { - "default": "172.16.2.0/24", - "description": "CIDR block to be used for zone 2" - }, - "group": 20000, - "label": "[root] var.zone2_cidr", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "zone2_cidr", - "simple_name": "var.zone2_cidr", - "svg_id": "node_31", - "type": "var" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_32", - "type": "meta" - }, - { - "apply": {}, - "cluster": "root", - "definition": { - "generation": 2, - "region": "${var.ibmcloud_region}" - }, - "group": 20000, - "label": "[root] provider.ibm (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", - "svg_id": "node_33", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.template (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "template", - "simple_name": "provider.template (close)", - "svg_id": "node_34", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] root", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "", - "simple_name": "root", - "svg_id": "node_35", - "type": "" - } - ] -} \ No newline at end of file diff --git a/npm/example/demo-3/demo-3.svg b/npm/example/demo-3/demo-3.svg deleted file mode 100644 index 47af9a4..0000000 --- a/npm/example/demo-3/demo-3.svg +++ /dev/null @@ -1,669 +0,0 @@ - - - - - - -%3 - - -cluster[root] provider.ibm_var_ - - -cluster[root] ibm_is_ssh_key.ssh1_var_ - - -cluster[root] ibm_is_vpc.vpc1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 - - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - -cloud-init-apptier - - - -[root] provider.template - -provider - -template - - - -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - - - - -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - -instance1 - - - -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - -instance2 - - - -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - -ssh1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - -subnet1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - - - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - -lb1-listener - - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - -lb1-pool - - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] provider.ibm - -provider - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - - - - -[root] provider.ibm (close) - -provider - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - - - - diff --git a/npm/example/demo-3/demonew-3.svg b/npm/example/demo-3/demonew-3.svg deleted file mode 100644 index b847b20..0000000 --- a/npm/example/demo-3/demonew-3.svg +++ /dev/null @@ -1,757 +0,0 @@ - - - - - - -%3 - - -cluster[root] provider.ibm_var_ - - -cluster[root] ibm_is_ssh_key.ssh1_var_ - - -cluster[root] ibm_is_vpc.vpc1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 - - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - - - - -cloud-init-apptier - - - -[root] provider.template - -provider - - -template - - - -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - - - - -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - - -+ - - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - - -+ - - -instance1 - - - -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - - -+ - - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - - -+ - - -instance2 - - - -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - - -+ - - -ssh1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - - -+ - - -subnet1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - - - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - - -+ - - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - - -+ - - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - - -+ - - -lb1-listener - - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - - -+ - - -lb1-pool - - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - - -+ - - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - - -+ - - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - - -+ - - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - - -+ - - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] provider.ibm - -provider - - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - - -+ - - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - - -+ - - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - - -+ - - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - - - - -[root] provider.ibm (close) - -provider - - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - - - - diff --git a/npm/example/demo-3/simple-demo-3.json b/npm/example/demo-3/simple-demo-3.json index 5bad87a..33eba37 100644 --- a/npm/example/demo-3/simple-demo-3.json +++ b/npm/example/demo-3/simple-demo-3.json @@ -2,503 +2,753 @@ "edges": [ { "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", + "source": "[root] ibm_is_instance.testacc_instance1", "svg_id": "edge_0", - "target": "[root] ibm_iam_authorization_policy.policy" + "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", + "source": "[root] ibm_is_lb.lb", "svg_id": "edge_1", - "target": "[root] ibm_kp_key.test" + "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_cos_bucket.flex-us-south", + "source": "[root] ibm_is_subnet.testacc_subnet", "svg_id": "edge_2", - "target": "[root] ibm_resource_instance.cos_instance" + "target": "[root] ibm_is_vpc.testacc_vpc" }, { "edge_type": 1, - "source": "[root] ibm_iam_authorization_policy.policy", + "source": "[root] ibm_is_volume.testacc_volume", "svg_id": "edge_3", "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_kp_key.test", + "source": "[root] ibm_is_vpc.testacc_vpc", "svg_id": "edge_4", - "target": "[root] ibm_resource_instance.kp_instance" + "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_kp_key.test", + "source": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway", "svg_id": "edge_5", - "target": "[root] var.key_name" + "target": "[root] provider.ibm" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_6", - "target": "[root] provider.ibm" + "target": "[root] ibm_is_instance.testacc_instance1" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_7", - "target": "[root] var.cos_name" + "target": "[root] ibm_is_lb.lb" }, { - "edge_type": 2, - "source": "[root] ibm_resource_instance.cos_instance", + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_8", - "target": "[root] var.location" + "target": "[root] ibm_is_subnet.testacc_subnet" }, { - "edge_type": 2, - "source": "[root] ibm_resource_instance.cos_instance", + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_9", - "target": "[root] var.pln" + "target": "[root] ibm_is_volume.testacc_volume" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", + "source": "[root] meta.count-boundary (EachMode fixup)", "svg_id": "edge_10", - "target": "[root] provider.ibm" + "target": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway" }, { "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", + "source": "[root] provider.ibm (close)", "svg_id": "edge_11", - "target": "[root] var.kp_name" + "target": "[root] ibm_is_instance.testacc_instance1" }, { "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", + "source": "[root] provider.ibm (close)", "svg_id": "edge_12", - "target": "[root] ibm_cos_bucket.flex-us-south" + "target": "[root] ibm_is_lb.lb" }, { "edge_type": 1, "source": "[root] provider.ibm (close)", "svg_id": "edge_13", - "target": "[root] ibm_cos_bucket.flex-us-south" + "target": "[root] ibm_is_subnet.testacc_subnet" }, { "edge_type": 1, - "source": "[root] root", + "source": "[root] provider.ibm (close)", "svg_id": "edge_14", - "target": "[root] meta.count-boundary (EachMode fixup)" + "target": "[root] ibm_is_volume.testacc_volume" }, { "edge_type": 1, - "source": "[root] root", + "source": "[root] provider.ibm (close)", "svg_id": "edge_15", - "target": "[root] provider.ibm (close)" + "target": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway" }, { - "edge_type": 3, - "source": "[root] var.cos_name", + "edge_type": 1, + "source": "[root] root", "svg_id": "edge_16", - "target": "[root] var.location" + "target": "[root] meta.count-boundary (EachMode fixup)" }, { - "edge_type": 3, - "source": "[root] var.location", + "edge_type": 1, + "source": "[root] root", "svg_id": "edge_17", - "target": "[root] var.pln" + "target": "[root] provider.ibm (close)" } ], "nodes": [ { - "apply": { - "instances": [], - "mode": "managed", - "name": "flex-us-south", - "provider": "provider.ibm", - "type": "ibm_cos_bucket" - }, + "apply": null, "cluster": "root", + "cost": { + "depends": [ + { + "cost": 11.807999999999998, + "quantity": 1, + "title": "is.volume" + } + ], + "estimateType": "", + "features": null, + "id": "testacc_instance1", + "lineitemtotal": "74.04 USD", + "planID": "66380d42-d4a9-4627-88fa-7b6631e5bd63", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_instance", + "title": "Virtual Server" + }, "definition": { - "bucket_name": "abuck3", - "key_protect": "${ibm_kp_key.test.id}", - "region_location": "us-south", - "resource_instance_id": "${ibm_resource_instance.cos_instance.id}", - "storage_class": "flex" + "image": "7eb4e35b-4257-56f8-d7da-326d85452591", + "keys": [ + "eac87f33-0c00-4da7-aa66-dc2d972148bd" + ], + "name": "testinstance", + "primary_network_interface": { + "port_speed": "1000", + "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" + }, + "profile": "b-2x8", + "vpc": "01eda778-b822-43a2-816d-d30713df5e13", + "zone": "us-south-1" }, "group": 20000, - "label": "[root] ibm_cos_bucket.flex-us-south", + "label": "[root] ibm_is_instance.testacc_instance1", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cos_bucket.flex-us-south", + "address": "ibm_is_instance.testacc_instance1", "change": { "actions": [ "create" ], "after": { - "bucket_name": "abuck3", - "cross_region_location": null, - "region_location": "us-south", - "single_site_location": null, - "storage_class": "flex", - "timeouts": null + "generation": null, + "image": "7eb4e35b-4257-56f8-d7da-326d85452591", + "keys": [ + "eac87f33-0c00-4da7-aa66-dc2d972148bd" + ], + "name": "testinstance", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": 1000, + "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" + } + ], + "profile": "b-2x8", + "timeouts": null, + "user_data": null, + "volumes": null, + "vpc": "01eda778-b822-43a2-816d-d30713df5e13", + "zone": "us-south-1" }, "after_unknown": { - "crn": true, + "boot_volume": true, + "gpu": true, "id": true, - "key_protect": true, - "resource_instance_id": true, - "s3_endpoint_private": true, - "s3_endpoint_public": true + "keys": [ + false + ], + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true, + "vcpu": true, + "volume_attachments": true }, "before": null }, "mode": "managed", - "name": "flex-us-south", + "name": "testacc_instance1", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_cos_bucket", + "type": "ibm_is_instance", "values": { - "bucket_name": "abuck3", - "cross_region_location": null, - "region_location": "us-south", - "single_site_location": null, - "storage_class": "flex", - "timeouts": null + "generation": null, + "image": "7eb4e35b-4257-56f8-d7da-326d85452591", + "keys": [ + "eac87f33-0c00-4da7-aa66-dc2d972148bd" + ], + "name": "testinstance", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": 1000, + "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" + } + ], + "profile": "b-2x8", + "timeouts": null, + "user_data": null, + "volumes": null, + "vpc": "01eda778-b822-43a2-816d-d30713df5e13", + "zone": "us-south-1" } }, - "resource_name": "flex-us-south", - "simple_name": "ibm_cos_bucket.flex-us-south", + "policy": "no policy available", + "resource_name": "testacc_instance1", + "simple_name": "ibm_is_instance.testacc_instance1", "svg_id": "node_0", - "type": "ibm_cos_bucket" + "type": "ibm_is_instance" }, { "apply": null, "cluster": "root", - "definition": "", + "cost": { + "depends": [ + { + "cost": 0, + "quantity": 1, + "title": "is.floating-ip" + } + ], + "estimateType": "", + "features": null, + "id": "lb", + "lineitemtotal": "0 USD", + "planID": "6092eed9-b0a4-4933-86dd-5532b22274dc", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_lb", + "title": "Load Balancer" + }, + "definition": { + "name": "loadbalancer1", + "subnets": [ + "04813493-15d6-4150-9948-6cc646cb67f2" + ] + }, "group": 20000, - "label": "[root] ibm_iam_authorization_policy.policy", + "label": "[root] ibm_is_lb.lb", "module": "root", "modules": [ "root" ], - "plan": null, - "resource_name": "policy", - "simple_name": "ibm_iam_authorization_policy.policy", + "plan": { + "address": "ibm_is_lb.lb", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "loadbalancer1", + "subnets": [ + "04813493-15d6-4150-9948-6cc646cb67f2" + ], + "timeouts": null, + "type": "public" + }, + "after_unknown": { + "hostname": true, + "id": true, + "operating_status": true, + "private_ips": true, + "public_ips": true, + "resource_controller_url": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "status": true, + "subnets": [ + false + ], + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "lb", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb", + "values": { + "name": "loadbalancer1", + "subnets": [ + "04813493-15d6-4150-9948-6cc646cb67f2" + ], + "timeouts": null, + "type": "public" + } + }, + "policy": "no policy available", + "resource_name": "lb", + "simple_name": "ibm_is_lb.lb", "svg_id": "node_1", - "type": "ibm_iam_authorization_policy" + "type": "ibm_is_lb" }, { "apply": { - "instances": [], + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "d4f8ab01-34b3-4f61-84d7-31b02db999a6", + "ip_version": "ipv4", + "ipv4_cidr_block": "10.240.0.0/24", + "ipv6_cidr_block": null, + "name": "testsubnet", + "network_acl": "ae34aaf3-67cd-4ea9-9691-3e0b884ed287", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::subnet:d4f8ab01-34b3-4f61-84d7-31b02db999a6", + "resource_group": null, + "resource_group_name": null, + "resource_name": "testsubnet", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "c1a6b21d-3493-4087-a691-90b631428a13", + "zone": "us-south-1" + }, + "depends_on": [ + "ibm_is_vpc.testacc_vpc" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], "mode": "managed", - "name": "test", + "name": "testacc_subnet", "provider": "provider.ibm", - "type": "ibm_kp_key" + "type": "ibm_is_subnet" }, "cluster": "root", + "cost": "no cost available", "definition": { - "key_name": "${var.key_name}", - "key_protect_id": "${ibm_resource_instance.kp_instance.guid}", - "standard_key": false + "ipv4_cidr_block": "10.240.0.0/24", + "name": "testsubnet", + "vpc": "${ibm_is_vpc.testacc_vpc.id}", + "zone": "us-south-1" }, "group": 20000, - "label": "[root] ibm_kp_key.test", + "label": "[root] ibm_is_subnet.testacc_subnet", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_kp_key.test", + "address": "ibm_is_subnet.testacc_subnet", "change": { "actions": [ "create" ], "after": { - "encrypted_nonce": null, - "iv_value": null, - "key_name": "test_key2", - "standard_key": false, - "timeouts": null + "ip_version": "ipv4", + "ipv4_cidr_block": "10.240.0.0/24", + "name": "testsubnet", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" }, "after_unknown": { - "crn": true, + "available_ipv4_address_count": true, "id": true, - "key_id": true, - "key_protect_id": true, - "payload": true, + "ipv6_cidr_block": true, + "network_acl": true, "resource_controller_url": true, "resource_crn": true, + "resource_group": true, "resource_group_name": true, "resource_name": true, - "resource_status": true + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true }, "before": null }, "mode": "managed", - "name": "test", + "name": "testacc_subnet", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_kp_key", + "type": "ibm_is_subnet", "values": { - "encrypted_nonce": null, - "iv_value": null, - "key_name": "test_key2", - "standard_key": false, - "timeouts": null + "ip_version": "ipv4", + "ipv4_cidr_block": "10.240.0.0/24", + "name": "testsubnet", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" } }, - "resource_name": "test", - "simple_name": "ibm_kp_key.test", + "policy": "no policy available", + "resource_name": "testacc_subnet", + "simple_name": "ibm_is_subnet.testacc_subnet", "svg_id": "node_2", - "type": "ibm_kp_key" + "type": "ibm_is_subnet" }, { - "apply": null, + "apply": { + "instances": [ + { + "attributes": { + "capacity": 100, + "crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::volume:90537bce-3c80-4c8e-bb90-592e8b15244c", + "encryption_key": null, + "id": "90537bce-3c80-4c8e-bb90-592e8b15244c", + "iops": 3000, + "name": "testvolume", + "profile": "10iops-tier", + "resource_controller_url": "https://cloud.ibm.com/vpc/storage/storageVolumes", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::volume:90537bce-3c80-4c8e-bb90-592e8b15244c", + "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_name": "testvolume", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null, + "zone": "us-south-1" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "testacc_volume", + "provider": "provider.ibm", + "type": "ibm_is_volume" + }, "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "testacc_volume", + "lineitemtotal": "0 USD", + "planID": "64841f3b-3a6f-4893-831a-54a6abaf1dd7", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_volume", + "title": "Storage Volume" + }, "definition": { - "location": "${var.location}", - "name": "${var.cos_name}", - "plan": "${var.pln}", - "service": "cloud-object-storage" + "name": "testvolume", + "profile": "10iops-tier", + "zone": "us-south-1" }, "group": 20000, - "label": "[root] ibm_resource_instance.cos_instance", + "label": "[root] ibm_is_volume.testacc_volume", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_resource_instance.cos_instance", + "address": "ibm_is_volume.testacc_volume", "change": { "actions": [ "create" ], "after": { - "location": "globals", - "name": "test_cos2", - "parameters": null, - "plan": "standards", - "resource_group_id": null, - "service": "cloud-object-storage", - "service_endpoints": null, - "tags": null, - "timeouts": null + "capacity": 100, + "name": "testvolume", + "profile": "10iops-tier", + "timeouts": null, + "zone": "us-south-1" }, "after_unknown": { "crn": true, - "guid": true, + "encryption_key": true, "id": true, + "iops": true, "resource_controller_url": true, "resource_crn": true, + "resource_group": true, "resource_group_name": true, "resource_name": true, "resource_status": true, - "status": true + "status": true, + "tags": true }, "before": null }, "mode": "managed", - "name": "cos_instance", + "name": "testacc_volume", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_resource_instance", + "type": "ibm_is_volume", "values": { - "location": "globals", - "name": "test_cos2", - "parameters": null, - "plan": "standards", - "resource_group_id": null, - "service": "cloud-object-storage", - "service_endpoints": null, - "tags": null, - "timeouts": null + "capacity": 100, + "name": "testvolume", + "profile": "10iops-tier", + "timeouts": null, + "zone": "us-south-1" } }, - "resource_name": "cos_instance", - "simple_name": "ibm_resource_instance.cos_instance", + "policy": "no policy available", + "resource_name": "testacc_volume", + "simple_name": "ibm_is_volume.testacc_volume", "svg_id": "node_3", - "type": "ibm_resource_instance" + "type": "ibm_is_volume" }, { - "apply": null, + "apply": { + "instances": [ + { + "attributes": { + "address_prefix_management": "auto", + "classic_access": false, + "crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:c1a6b21d-3493-4087-a691-90b631428a13", + "cse_source_addresses": [ + { + "address": "10.249.128.216", + "zone_name": "us-south-3" + }, + { + "address": "10.249.112.158", + "zone_name": "us-south-1" + }, + { + "address": "10.249.120.144", + "zone_name": "us-south-2" + } + ], + "default_network_acl": "ae34aaf3-67cd-4ea9-9691-3e0b884ed287", + "default_security_group": "2d364f0a-a870-42c3-a554-000003125704", + "id": "c1a6b21d-3493-4087-a691-90b631428a13", + "is_default": null, + "name": "testvpc", + "resource_controller_url": "https://cloud.ibm.com/vpc/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:c1a6b21d-3493-4087-a691-90b631428a13", + "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_name": "testvpc", + "resource_status": "available", + "status": "available", + "subnets": [], + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "testacc_vpc", + "provider": "provider.ibm", + "type": "ibm_is_vpc" + }, "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "testacc_vpc", + "lineitemtotal": "0 USD", + "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_vpc", + "title": "VPC" + }, "definition": { - "location": "us-south", - "name": "${var.kp_name}", - "plan": "tiered-pricing", - "service": "mks" + "name": "testvpc" }, "group": 20000, - "label": "[root] ibm_resource_instance.kp_instance", + "label": "[root] ibm_is_vpc.testacc_vpc", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_resource_instance.kp_instance", + "address": "ibm_is_vpc.testacc_vpc", "change": { "actions": [ "create" ], "after": { - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "mks", - "service_endpoints": null, - "tags": null, + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "testvpc", "timeouts": null }, "after_unknown": { "crn": true, - "guid": true, + "cse_source_addresses": true, + "default_network_acl": true, + "default_security_group": true, "id": true, "resource_controller_url": true, "resource_crn": true, + "resource_group": true, "resource_group_name": true, "resource_name": true, "resource_status": true, - "status": true + "status": true, + "subnets": true, + "tags": true }, "before": null }, "mode": "managed", - "name": "kp_instance", + "name": "testacc_vpc", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_resource_instance", + "type": "ibm_is_vpc", "values": { - "location": "us-south", - "name": "test_kp2", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "mks", - "service_endpoints": null, - "tags": null, + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "testvpc", "timeouts": null } }, - "resource_name": "kp_instance", - "simple_name": "ibm_resource_instance.kp_instance", + "policy": "no policy available", + "resource_name": "testacc_vpc", + "simple_name": "ibm_is_vpc.testacc_vpc", "svg_id": "node_4", - "type": "ibm_resource_instance" - }, - { - "apply": {}, - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_5", - "type": "provider" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", - "definition": { - "default": "test_cos2" - }, - "group": 20000, - "label": "[root] var.cos_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "cos_name", - "simple_name": "var.cos_name", - "svg_id": "node_6", - "type": "var" + "type": "ibm_is_vpc" }, { "apply": null, - "cluster": "cluster[root] ibm_kp_key.test_var_", - "definition": { - "default": "test_key2" + "cluster": "root", + "cost": { + "depends": [ + { + "cost": 1, + "quantity": 1, + "title": "is.floating-ip" + } + ], + "estimateType": "", + "features": null, + "id": "testacc_vpn_gateway", + "lineitemtotal": "1 USD", + "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_vpn_gateway", + "title": "VPN Gateway" }, - "group": 20000, - "label": "[root] var.key_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "key_name", - "simple_name": "var.key_name", - "svg_id": "node_7", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.kp_instance_var_", "definition": { - "default": "test_kp2" + "name": "test", + "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9" }, "group": 20000, - "label": "[root] var.kp_name", + "label": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway", "module": "root", "modules": [ "root" ], - "plan": null, - "resource_name": "kp_name", - "simple_name": "var.kp_name", - "svg_id": "node_8", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", - "definition": { - "default": "globals" + "plan": { + "address": "ibm_is_vpn_gateway.testacc_vpn_gateway", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "test", + "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9", + "timeouts": null + }, + "after_unknown": { + "id": true, + "public_ip_address": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "testacc_vpn_gateway", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpn_gateway", + "values": { + "name": "test", + "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9", + "timeouts": null + } }, - "group": 20000, - "label": "[root] var.location", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "resource_name": "location", - "simple_name": "var.location", - "svg_id": "node_9", - "type": "var" + "policy": "no policy available", + "resource_name": "testacc_vpn_gateway", + "simple_name": "ibm_is_vpn_gateway.testacc_vpn_gateway", + "svg_id": "node_5", + "type": "ibm_is_vpn_gateway" }, { - "apply": null, - "cluster": "cluster[root] ibm_resource_instance.cos_instance_var_", + "apply": {}, + "cluster": "root", + "cost": "cost data to be displayed here", "definition": { - "default": "standards" + "generation": 1, + "ibmcloud_api_key": "42fET57nnadurKXzXAedFLOhGqETfIGYxOmQXkFgkJV9" }, "group": 20000, - "label": "[root] var.pln", + "label": "[root] provider.ibm", "module": "root", "modules": [ "root" ], - "plan": null, - "resource_name": "pln", - "simple_name": "var.pln", - "svg_id": "node_10", - "type": "var" + "plan": {}, + "policy": "policy data to be displayed here", + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_6", + "type": "provider" }, { "apply": {}, "cluster": "root", + "cost": {}, "definition": "", "group": 20000, "label": "[root] meta.count-boundary (EachMode fixup)", @@ -507,15 +757,20 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "count-boundary", "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_11", + "svg_id": "node_7", "type": "meta" }, { "apply": {}, "cluster": "root", - "definition": "", + "cost": {}, + "definition": { + "generation": 1, + "ibmcloud_api_key": "42fET57nnadurKXzXAedFLOhGqETfIGYxOmQXkFgkJV9" + }, "group": 20000, "label": "[root] provider.ibm (close)", "module": "root", @@ -523,14 +778,16 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "ibm", "simple_name": "provider.ibm (close)", - "svg_id": "node_12", + "svg_id": "node_8", "type": "provider" }, { "apply": {}, "cluster": "root", + "cost": {}, "definition": "", "group": 20000, "label": "[root] root", @@ -539,11 +796,12 @@ "root" ], "plan": {}, + "policy": {}, "resource_name": "", "simple_name": "root", - "svg_id": "node_13", + "svg_id": "node_9", "type": "" } - ] + ], + "totalcost": "150.07 USD" } - diff --git a/npm/example/demo-3/simple-demo-3.svg b/npm/example/demo-3/simple-demo-3.svg index 5521d4d..4f351d8 100644 --- a/npm/example/demo-3/simple-demo-3.svg +++ b/npm/example/demo-3/simple-demo-3.svg @@ -1,231 +1,262 @@ - - - - -%3 - - -cluster[root] ibm_resource_instance.cos_instance_var_ - - -cluster[root] ibm_kp_key.test_var_ - - -cluster[root] ibm_resource_instance.kp_instance_var_ - - + + + + + -[root] ibm_cos_bucket.flex-us-south - -ibm_cos_bucket - - -+ - - -flex-us-south - - - -[root] ibm_kp_key.test - -ibm_kp_key - - -+ - - -test - - +[root] ibm_is_instance.testacc_instance1 + +ibm_is_instance + +testacc_instance1 + +state + ++ + +apply + +74.04 USD + +controls + + + +[root] provider.ibm + +provider + +ibm + + + -[root] ibm_cos_bucket.flex-us-south->[root] ibm_kp_key.test - - +[root] ibm_is_instance.testacc_instance1->[root] provider.ibm + + - - -[root] ibm_resource_instance.cos_instance - -ibm_resource_instance - - -+ - - -cos_instance - - + + +[root] ibm_is_lb.lb + +ibm_is_lb + +lb + +state + ++ + +apply + +0 USD + +controls + + -[root] ibm_cos_bucket.flex-us-south->[root] ibm_resource_instance.cos_instance - - +[root] ibm_is_lb.lb->[root] provider.ibm + + - - -[root] ibm_resource_instance.kp_instance - -ibm_resource_instance - - -+ - - -kp_instance - - + + +[root] ibm_is_subnet.testacc_subnet + +ibm_is_subnet + +testacc_subnet + +state + ++ + +apply + + +controls + + + +[root] ibm_is_vpc.testacc_vpc + +ibm_is_vpc + +testacc_vpc + +state + ++ + +apply + +0 USD + +controls + + -[root] ibm_kp_key.test->[root] ibm_resource_instance.kp_instance - - +[root] ibm_is_subnet.testacc_subnet->[root] ibm_is_vpc.testacc_vpc + + - - -[root] var.key_name - -var - - -key_name - - - -[root] ibm_kp_key.test->[root] var.key_name - - + + +[root] ibm_is_volume.testacc_volume + +ibm_is_volume + +testacc_volume + +state + ++ + +apply + +0 USD + +controls - - -[root] provider.ibm - -provider - - -ibm + + +[root] ibm_is_volume.testacc_volume->[root] provider.ibm + + - + -[root] ibm_resource_instance.cos_instance->[root] provider.ibm - - +[root] ibm_is_vpc.testacc_vpc->[root] provider.ibm + + - + -[root] var.cos_name - -var - - -cos_name - - +[root] ibm_is_vpn_gateway.testacc_vpn_gateway + +ibm_is_vpn_gateway + +testacc_vpn_gateway + +state + ++ + +apply + +1 USD + +controls + + -[root] ibm_resource_instance.cos_instance->[root] var.cos_name - - +[root] ibm_is_vpn_gateway.testacc_vpn_gateway->[root] provider.ibm + + + + + +[root] meta.count-boundary (EachMode fixup) + +meta + +count-boundary + + + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_instance.testacc_instance1 + + - + + +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb.lb + + + + -[root] ibm_resource_instance.kp_instance->[root] provider.ibm - - +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_subnet.testacc_subnet + + - - -[root] var.kp_name - -var - - -kp_name - - + -[root] ibm_resource_instance.kp_instance->[root] var.kp_name - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_volume.testacc_volume + + - + -[root] meta.count-boundary (EachMode fixup)->[root] ibm_cos_bucket.flex-us-south - - +[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_vpn_gateway.testacc_vpn_gateway + + - + [root] provider.ibm (close) - -provider - - -ibm + +provider + +ibm + - + -[root] provider.ibm (close)->[root] ibm_cos_bucket.flex-us-south - - +[root] provider.ibm (close)->[root] ibm_is_instance.testacc_instance1 + + + + + +[root] provider.ibm (close)->[root] ibm_is_lb.lb + + + + + +[root] provider.ibm (close)->[root] ibm_is_subnet.testacc_subnet + + + + + +[root] provider.ibm (close)->[root] ibm_is_volume.testacc_volume + + + + + +[root] provider.ibm (close)->[root] ibm_is_vpn_gateway.testacc_vpn_gateway + + - + [root] root - -[root] root + +[root] root + +150.07 USD - + [root] root->[root] meta.count-boundary (EachMode fixup) - - + + - + [root] root->[root] provider.ibm (close) - - - - - -[root] var.location - -var - - -location - - - -[root] var.cos_name->[root] var.location - - - - -[root] var.pln - -var - - -pln - - - -[root] var.location->[root] var.pln - + + - diff --git a/npm/example/demo-4/demo-4.json b/npm/example/demo-4/demo-4.json deleted file mode 100644 index 190a661..0000000 --- a/npm/example/demo-4/demo-4.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "edges": [ - { - "edge_type": 1, - "source": "[root] azurerm_resource_group.rg", - "svg_id": "edge_0", - "target": "[root] provider.azurerm" - }, - { - "edge_type": 1, - "source": "[root] azurerm_resource_group.rg", - "svg_id": "edge_1", - "target": "[root] var.location" - }, - { - "edge_type": 2, - "source": "[root] azurerm_resource_group.rg", - "svg_id": "edge_2", - "target": "[root] var.resource_group" - }, - { - "edge_type": 1, - "source": "[root] azurerm_search_service.search", - "svg_id": "edge_3", - "target": "[root] azurerm_resource_group.rg" - }, - { - "edge_type": 1, - "source": "[root] azurerm_search_service.search", - "svg_id": "edge_4", - "target": "[root] var.partition_count" - }, - { - "edge_type": 2, - "source": "[root] azurerm_search_service.search", - "svg_id": "edge_5", - "target": "[root] var.replica_count" - }, - { - "edge_type": 2, - "source": "[root] azurerm_search_service.search", - "svg_id": "edge_6", - "target": "[root] var.search_name" - }, - { - "edge_type": 2, - "source": "[root] azurerm_search_service.search", - "svg_id": "edge_7", - "target": "[root] var.sku" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (count boundary fixup)", - "svg_id": "edge_8", - "target": "[root] output.Azure Search Service" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (count boundary fixup)", - "svg_id": "edge_9", - "target": "[root] var.hosting_mode" - }, - { - "edge_type": 1, - "source": "[root] output.Azure Search Service", - "svg_id": "edge_10", - "target": "[root] azurerm_search_service.search" - }, - { - "edge_type": 1, - "source": "[root] provider.azurerm (close)", - "svg_id": "edge_11", - "target": "[root] azurerm_search_service.search" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_12", - "target": "[root] meta.count-boundary (count boundary fixup)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_13", - "target": "[root] provider.azurerm (close)" - }, - { - "edge_type": 3, - "source": "[root] var.location", - "svg_id": "edge_14", - "target": "[root] var.resource_group" - }, - { - "edge_type": 3, - "source": "[root] var.partition_count", - "svg_id": "edge_15", - "target": "[root] var.replica_count" - }, - { - "edge_type": 3, - "source": "[root] var.replica_count", - "svg_id": "edge_16", - "target": "[root] var.search_name" - }, - { - "edge_type": 3, - "source": "[root] var.search_name", - "svg_id": "edge_17", - "target": "[root] var.sku" - } - ], - "nodes": [ - { - "cluster": "root", - "definition": { - "location": "${var.location}", - "name": "${var.resource_group}" - }, - "group": 20000, - "label": "[root] azurerm_resource_group.rg", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "rg", - "simple_name": "azurerm_resource_group.rg", - "svg_id": "node_0", - "type": "azurerm_resource_group" - }, - { - "cluster": "root", - "definition": { - "location": "${var.location}", - "name": "${var.search_name}", - "partition_count": "${var.partition_count}", - "replica_count": "${var.replica_count}", - "resource_group_name": "${azurerm_resource_group.rg.name}", - "sku": "${var.sku}" - }, - "group": 20000, - "label": "[root] azurerm_search_service.search", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "search", - "simple_name": "azurerm_search_service.search", - "svg_id": "node_1", - "type": "azurerm_search_service" - }, - { - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.azurerm", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "azurerm", - "simple_name": "provider.azurerm", - "svg_id": "node_2", - "type": "provider" - }, - { - "cluster": "cluster[root] azurerm_resource_group.rg_var_", - "definition": { - "default": "southcentralus", - "description": "The location/region where the search service is created. Changing this forces a new resource to be created." - }, - "group": 20000, - "label": "[root] var.location", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "location", - "simple_name": "var.location", - "svg_id": "node_3", - "type": "var" - }, - { - "cluster": "cluster[root] azurerm_resource_group.rg_var_", - "definition": { - "description": "The name of the resource group in which to create search service" - }, - "group": 20000, - "label": "[root] var.resource_group", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "resource_group", - "simple_name": "var.resource_group", - "svg_id": "node_4", - "type": "var" - }, - { - "cluster": "cluster[root] azurerm_search_service.search_var_", - "definition": { - "default": 1, - "description": "Partitions allow for scaling of document count as well as faster indexing by sharding your index over multiple Azure Search units. Allowed values: 1, 2, 3, 4, 6, 12" - }, - "group": 20000, - "label": "[root] var.partition_count", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "partition_count", - "simple_name": "var.partition_count", - "svg_id": "node_5", - "type": "var" - }, - { - "cluster": "cluster[root] azurerm_search_service.search_var_", - "definition": { - "default": 1, - "description": "Replicas distribute search workloads across the service. You need 2 or more to support high availability (applies to Basic and Standard only)." - }, - "group": 20000, - "label": "[root] var.replica_count", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "replica_count", - "simple_name": "var.replica_count", - "svg_id": "node_6", - "type": "var" - }, - { - "cluster": "cluster[root] azurerm_search_service.search_var_", - "definition": { - "description": "Service name must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and is limited between 2 and 60 characters in length." - }, - "group": 20000, - "label": "[root] var.search_name", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "search_name", - "simple_name": "var.search_name", - "svg_id": "node_7", - "type": "var" - }, - { - "cluster": "cluster[root] azurerm_search_service.search_var_", - "definition": { - "default": "standard", - "description": "Valid values are 'free', 'standard', 'standard2', and 'standard3' (2 & 3 must be enabled on the backend by Microsoft support). 'free' provisions the service in shared clusters. 'standard' provisions the service in dedicated clusters." - }, - "group": 20000, - "label": "[root] var.sku", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "sku", - "simple_name": "var.sku", - "svg_id": "node_8", - "type": "var" - }, - { - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (count boundary fixup)", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (count boundary fixup)", - "svg_id": "node_9", - "type": "meta" - }, - { - "cluster": "cluster[root] meta.count-boundary (count boundary fixup)_output_[root] azurerm_search_service.search", - "definition": "", - "group": 20000, - "label": "[root] output.Azure Search Service", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "Azure", - "simple_name": "output.Azure Search Service", - "svg_id": "node_10", - "type": "output" - }, - { - "cluster": "cluster[root] meta.count-boundary (count boundary fixup)_var_", - "definition": { - "default": "default", - "description": "Applicable only for SKU set to standard3. You can set this property to enable a single, high density partition that allows up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. Allowed values: default, highDensity" - }, - "group": 20000, - "label": "[root] var.hosting_mode", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "hosting_mode", - "simple_name": "var.hosting_mode", - "svg_id": "node_11", - "type": "var" - }, - { - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] provider.azurerm (close)", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "azurerm", - "simple_name": "provider.azurerm (close)", - "svg_id": "node_12", - "type": "provider" - }, - { - "cluster": "root", - "definition": "", - "group": 20000, - "label": "[root] root", - "module": "root", - "modules": [ - "root" - ], - "resource_name": "", - "simple_name": "root", - "svg_id": "node_13", - "type": "" - } - ] -} \ No newline at end of file diff --git a/npm/example/demo-4/demo-4.svg b/npm/example/demo-4/demo-4.svg deleted file mode 100644 index 5de2fbd..0000000 --- a/npm/example/demo-4/demo-4.svg +++ /dev/null @@ -1,208 +0,0 @@ - - -%3 - - -cluster[root] azurerm_resource_group.rg_var_ - - -cluster[root] azurerm_search_service.search_var_ - - -cluster[root] meta.count-boundary (count boundary fixup)_var_ - - -cluster[root] meta.count-boundary (count boundary fixup)_output_[root] azurerm_search_service.search - - - -[root] azurerm_resource_group.rg - -azurerm_resource_group - -rg - - - -[root] provider.azurerm - -provider - -azurerm - - - -[root] azurerm_resource_group.rg->[root] provider.azurerm - - - - - -[root] var.location - -var - -location - - - -[root] azurerm_resource_group.rg->[root] var.location - - - - - -[root] azurerm_search_service.search - -azurerm_search_service - -search - - - -[root] azurerm_search_service.search->[root] azurerm_resource_group.rg - - - - - -[root] var.partition_count - -var - -partition_count - - - -[root] azurerm_search_service.search->[root] var.partition_count - - - - - -[root] meta.count-boundary (count boundary fixup) - -meta - -count-boundary - - - -[root] var.hosting_mode - -var - -hosting_mode - - - -[root] meta.count-boundary (count boundary fixup)->[root] var.hosting_mode - - - - - -[root] output.Azure Search Service - -output - -Azure - - - -[root] meta.count-boundary (count boundary fixup)->[root] output.Azure Search Service - - - - - -[root] provider.azurerm (close) - -provider - -azurerm - - - -[root] provider.azurerm (close)->[root] azurerm_search_service.search - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (count boundary fixup) - - - - - -[root] root->[root] provider.azurerm (close) - - - - - -[root] var.resource_group - -var - -resource_group - - - -[root] var.location->[root] var.resource_group - - - - -[root] var.replica_count - -var - -replica_count - - - -[root] var.partition_count->[root] var.replica_count - - - - -[root] var.search_name - -var - -search_name - - - -[root] var.replica_count->[root] var.search_name - - - - -[root] var.sku - -var - -sku - - - -[root] var.search_name->[root] var.sku - - - - -[root] output.Azure Search Service->[root] azurerm_search_service.search - - - - - \ No newline at end of file diff --git a/npm/example/demo-4/demonew-4.svg b/npm/example/demo-4/demonew-4.svg deleted file mode 100644 index b847b20..0000000 --- a/npm/example/demo-4/demonew-4.svg +++ /dev/null @@ -1,757 +0,0 @@ - - - - - - -%3 - - -cluster[root] provider.ibm_var_ - - -cluster[root] ibm_is_ssh_key.ssh1_var_ - - -cluster[root] ibm_is_vpc.vpc1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap1_var_ - - -cluster[root] ibm_is_vpc_address_prefix.vpc-ap2_var_ - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip1 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_floating_ip.floatingip2 - - -cluster[root] meta.count-boundary (EachMode fixup)_output_[root] ibm_is_lb.lb1 - - - -[root] data.template_cloudinit_config.cloud-init-apptier - -template_cloudinit_config - - - - -cloud-init-apptier - - - -[root] provider.template - -provider - - -template - - - -[root] data.template_cloudinit_config.cloud-init-apptier->[root] provider.template - - - - - -[root] ibm_is_floating_ip.floatingip1 - -ibm_is_floating_ip - - -+ - - -floatingip1 - - - -[root] ibm_is_instance.instance1 - -ibm_is_instance - - -+ - - -instance1 - - - -[root] ibm_is_floating_ip.floatingip1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_floating_ip.floatingip2 - -ibm_is_floating_ip - - -+ - - -floatingip2 - - - -[root] ibm_is_instance.instance2 - -ibm_is_instance - - -+ - - -instance2 - - - -[root] ibm_is_floating_ip.floatingip2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_instance.instance1->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_ssh_key.ssh1 - -ibm_is_ssh_key - - -+ - - -ssh1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - - -+ - - -subnet1 - - - -[root] ibm_is_instance.instance1->[root] ibm_is_subnet.subnet1 - - - - - -[root] var.image - -var - - -image - - - -[root] ibm_is_instance.instance1->[root] var.image - - - - - -[root] var.profile - -var - - -profile - - - -[root] ibm_is_instance.instance1->[root] var.profile - - - - - -[root] ibm_is_instance.instance2->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] ibm_is_instance.instance2->[root] ibm_is_ssh_key.ssh1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - - -+ - - -subnet2 - - - -[root] ibm_is_instance.instance2->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_instance.instance2->[root] var.image - - - - - -[root] ibm_is_instance.instance2->[root] var.profile - - - - - -[root] ibm_is_lb.lb1 - -ibm_is_lb - - -+ - - -lb1 - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_is_lb.lb1->[root] ibm_is_subnet.subnet2 - - - - - -[root] ibm_is_lb_listener.lb1-listener - -ibm_is_lb_listener - - -+ - - -lb1-listener - - - -[root] ibm_is_lb_pool.lb1-pool - -ibm_is_lb_pool - - -+ - - -lb1-pool - - - -[root] ibm_is_lb_listener.lb1-listener->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool.lb1-pool->[root] ibm_is_lb.lb1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1 - -ibm_is_lb_pool_member - - -+ - - -lb1-pool-member1 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_instance.instance1 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member1->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2 - -ibm_is_lb_pool_member - - -+ - - -lb1-pool-member2 - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_instance.instance2 - - - - - -[root] ibm_is_lb_pool_member.lb1-pool-member2->[root] ibm_is_lb_pool.lb1-pool - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - -ibm_is_security_group_rule - - -+ - - -sg1_tcp_rule_22 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_22->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - -ibm_is_security_group_rule - - -+ - - -sg1_tcp_rule_80 - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] ibm_is_security_group_rule.sg1_tcp_rule_80->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] provider.ibm - -provider - - -ibm - - - -[root] ibm_is_ssh_key.ssh1->[root] provider.ibm - - - - - -[root] var.ssh_public_key - -var - - -ssh_public_key - - - -[root] ibm_is_ssh_key.ssh1->[root] var.ssh_public_key - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1 - -ibm_is_vpc_address_prefix - - -+ - - -vpc-ap1 - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc_address_prefix.vpc-ap1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2 - -ibm_is_vpc_address_prefix - - -+ - - -vpc-ap2 - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc_address_prefix.vpc-ap2 - - - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - - -+ - - -vpc1 - - - -[root] ibm_is_vpc.vpc1->[root] provider.ibm - - - - - -[root] var.vpc_name - -var - - -vpc_name - - - -[root] ibm_is_vpc.vpc1->[root] var.vpc_name - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone1 - -var - - -zone1 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap1->[root] var.zone1 - - - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] ibm_is_vpc.vpc1 - - - - - -[root] var.zone2 - -var - - -zone2 - - - -[root] ibm_is_vpc_address_prefix.vpc-ap2->[root] var.zone2 - - - - - -[root] var.ibmcloud_region - -var - - -ibmcloud_region - - - -[root] provider.ibm->[root] var.ibmcloud_region - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] output.FloatingIP-1 - -output - - -FloatingIP-1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-1 - - - - - -[root] output.FloatingIP-2 - -output - - -FloatingIP-2 - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.FloatingIP-2 - - - - - -[root] output.LB-Hostname - -output - - -LB-Hostname - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.LB-Hostname - - - - - -[root] provider.ibm (close) - -provider - - -ibm - - - -[root] provider.ibm (close)->[root] ibm_is_lb_listener.lb1-listener - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member1 - - - - - -[root] provider.ibm (close)->[root] ibm_is_lb_pool_member.lb1-pool-member2 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_22 - - - - - -[root] provider.ibm (close)->[root] ibm_is_security_group_rule.sg1_tcp_rule_80 - - - - - -[root] provider.template (close) - -provider - - -template - - - -[root] provider.template (close)->[root] data.template_cloudinit_config.cloud-init-apptier - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] root->[root] provider.template (close) - - - - - -[root] var.zone1_cidr - -var - - -zone1_cidr - - - -[root] var.zone1->[root] var.zone1_cidr - - - - -[root] var.zone2_cidr - -var - - -zone2_cidr - - - -[root] var.zone2->[root] var.zone2_cidr - - - - -[root] output.FloatingIP-1->[root] ibm_is_floating_ip.floatingip1 - - - - - -[root] output.FloatingIP-2->[root] ibm_is_floating_ip.floatingip2 - - - - - -[root] output.LB-Hostname->[root] ibm_is_lb.lb1 - - - - - diff --git a/npm/example/demo-4/simple-demo-4.json b/npm/example/demo-4/simple-demo-4.json new file mode 100644 index 0000000..c509b3d --- /dev/null +++ b/npm/example/demo-4/simple-demo-4.json @@ -0,0 +1,609 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] ibm_cis.web_domain", + "svg_id": "edge_0", + "target": "[root] ibm_resource_group.web_group" + }, + { + "edge_type": 1, + "source": "[root] ibm_cis_domain.web_domain", + "svg_id": "edge_1", + "target": "[root] ibm_cis.web_domain" + }, + { + "edge_type": 1, + "source": "[root] ibm_cis_domain.web_domain", + "svg_id": "edge_2", + "target": "[root] var.domain" + }, + { + "edge_type": 1, + "source": "[root] ibm_cis_domain_settings.web_domain", + "svg_id": "edge_3", + "target": "[root] ibm_cis_domain.web_domain" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_group.web_group", + "svg_id": "edge_4", + "target": "[root] provider.ibm" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_group.web_group", + "svg_id": "edge_5", + "target": "[root] var.resource_group" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_6", + "target": "[root] ibm_cis_domain_settings.web_domain" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_7", + "target": "[root] output.web_dns_name" + }, + { + "edge_type": 1, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_8", + "target": "[root] var.datacenter1" + }, + { + "edge_type": 2, + "source": "[root] meta.count-boundary (EachMode fixup)", + "svg_id": "edge_9", + "target": "[root] var.datacenter2" + }, + { + "edge_type": 1, + "source": "[root] output.web_dns_name", + "svg_id": "edge_10", + "target": "[root] var.dns_name" + }, + { + "edge_type": 1, + "source": "[root] output.web_dns_name", + "svg_id": "edge_11", + "target": "[root] var.domain" + }, + { + "edge_type": 1, + "source": "[root] provider.ibm (close)", + "svg_id": "edge_12", + "target": "[root] ibm_cis_domain_settings.web_domain" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_13", + "target": "[root] meta.count-boundary (EachMode fixup)" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_14", + "target": "[root] provider.ibm (close)" + }, + { + "edge_type": 3, + "source": "[root] var.datacenter1", + "svg_id": "edge_15", + "target": "[root] var.datacenter2" + } + ], + "nodes": [ + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "location": "global", + "name": "web_domain", + "plan": "standard", + "resource_group_id": "${ibm_resource_group.web_group.id}" + }, + "group": 20000, + "label": "[root] ibm_cis.web_domain", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cis.web_domain", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null + }, + "after_unknown": { + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "service": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "web_domain", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cis", + "values": { + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "web_domain", + "simple_name": "ibm_cis.web_domain", + "svg_id": "node_0", + "type": "ibm_cis" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "cis_id": "${ibm_cis.web_domain.id}", + "domain": "${var.domain}" + }, + "group": 20000, + "label": "[root] ibm_cis_domain.web_domain", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cis_domain.web_domain", + "change": { + "actions": [ + "create" + ], + "after": { + "domain": "example.com" + }, + "after_unknown": { + "cis_id": true, + "id": true, + "name_servers": true, + "original_name_servers": true, + "paused": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "web_domain", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cis_domain", + "values": { + "domain": "example.com" + } + }, + "policy": { + "decision": "pass", + "name": "web_domain", + "policies": [ + { + "capsule": "SecurityCapsule", + "control": "SecurityControl", + "rules": [ + "ibm_cis_domain_settings" + ], + "severity": "" + }, + { + "capsule": "ConfigCapsule", + "control": "ConfigurationControl", + "rules": [ + "too_many_admins", + "too_many_managers" + ], + "severity": "" + } + ], + "type": "ibm_cis_domain" + }, + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain.web_domain", + "svg_id": "node_1", + "type": "ibm_cis_domain" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain_settings" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "cis_id": "${ibm_cis.web_domain.id}", + "domain_id": "${ibm_cis_domain.web_domain.id}", + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" + }, + "group": 20000, + "label": "[root] ibm_cis_domain_settings.web_domain", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cis_domain_settings.web_domain", + "change": { + "actions": [ + "create" + ], + "after": { + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" + }, + "after_unknown": { + "always_use_https": true, + "automatic_https_rewrites": true, + "brotli": true, + "browser_check": true, + "certificate_status": true, + "cis_id": true, + "cname_flattening": true, + "domain_id": true, + "hotlink_protection": true, + "http2": true, + "id": true, + "image_load_optimization": true, + "image_size_optimization": true, + "ip_geolocation": true, + "ipv6": true, + "opportunistic_encryption": true, + "origin_error_page_pass_thru": true, + "prefetch_preload": true, + "pseudo_ipv4": true, + "response_buffering": true, + "script_load_optimization": true, + "server_side_exclude": true, + "tls_client_auth": true, + "true_client_ip_header": true, + "websockets": true + }, + "before": null + }, + "mode": "managed", + "name": "web_domain", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cis_domain_settings", + "values": { + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" + } + }, + "policy": { + "decision": "failed", + "name": "web_domain", + "policies": [ + { + "capsule": "SecurityCapsule", + "control": "SecurityControl", + "rules": [ + "ibm_cis_domain_settings" + ], + "severity": "" + }, + { + "capsule": "ConfigCapsule", + "control": "ConfigurationControl", + "rules": [ + "too_many_admins", + "too_many_managers" + ], + "severity": "" + } + ], + "type": "ibm_cis_domain_settings" + }, + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain_settings.web_domain", + "svg_id": "node_2", + "type": "ibm_cis_domain_settings" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "default": false, + "id": "769cf60b1ecc4cb092cab5e7af075d3f", + "name": "gilad-test-group1", + "quota_id": null, + "state": "ACTIVE", + "tags": null + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "web_group", + "provider": "provider.ibm", + "type": "ibm_resource_group" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "name": "${var.resource_group}" + }, + "group": 20000, + "label": "[root] ibm_resource_group.web_group", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_group.web_group", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "gilad-test-group", + "quota_id": null, + "tags": null + }, + "after_unknown": { + "default": true, + "id": true, + "state": true + }, + "before": null + }, + "mode": "managed", + "name": "web_group", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_group", + "values": { + "name": "gilad-test-group", + "quota_id": null, + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "web_group", + "simple_name": "ibm_resource_group.web_group", + "svg_id": "node_3", + "type": "ibm_resource_group" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "value": "http://${var.dns_name}${var.domain}" + }, + "group": 20000, + "label": "[root] output.web_dns_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "web_dns_name", + "simple_name": "output.web_dns_name", + "svg_id": "node_4", + "type": "output" + }, + { + "apply": {}, + "cluster": "root", + "cost": "cost data to be displayed here", + "definition": {}, + "group": 20000, + "label": "[root] provider.ibm", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "policy": "policy data to be displayed here", + "resource_name": "ibm", + "simple_name": "provider.ibm", + "svg_id": "node_5", + "type": "provider" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "cost": "no cost available", + "definition": { + "default": "lon02" + }, + "group": 20000, + "label": "[root] var.datacenter1", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "datacenter1", + "simple_name": "var.datacenter1", + "svg_id": "node_6", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "cost": "no cost available", + "definition": { + "default": "ams03" + }, + "group": 20000, + "label": "[root] var.datacenter2", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "datacenter2", + "simple_name": "var.datacenter2", + "svg_id": "node_7", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] output.web_dns_name_var_", + "cost": "no cost available", + "definition": { + "default": "", + "description": "DNS name (prefix) for website, including '.', 'www.'" + }, + "group": 20000, + "label": "[root] var.dns_name", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "dns_name", + "simple_name": "var.dns_name", + "svg_id": "node_8", + "type": "var" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "default": "example.com", + "description": "DNS Domain for web server" + }, + "group": 20000, + "label": "[root] var.domain", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "domain", + "simple_name": "var.domain", + "svg_id": "node_9", + "type": "var" + }, + { + "apply": null, + "cluster": "cluster[root] ibm_resource_group.web_group_var_", + "cost": "no cost available", + "definition": { + "default": "gilad-test-group1", + "description": "IBM Cloud Resource Group" + }, + "group": 20000, + "label": "[root] var.resource_group", + "module": "root", + "modules": [ + "root" + ], + "plan": null, + "policy": "no policy available", + "resource_name": "resource_group", + "simple_name": "var.resource_group", + "svg_id": "node_10", + "type": "var" + }, + { + "apply": {}, + "cluster": "root", + "cost": {}, + "definition": "", + "group": 20000, + "label": "[root] meta.count-boundary (EachMode fixup)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "policy": {}, + "resource_name": "count-boundary", + "simple_name": "meta.count-boundary (EachMode fixup)", + "svg_id": "node_11", + "type": "meta" + }, + { + "apply": {}, + "cluster": "root", + "cost": {}, + "definition": {}, + "group": 20000, + "label": "[root] provider.ibm (close)", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "policy": {}, + "resource_name": "ibm", + "simple_name": "provider.ibm (close)", + "svg_id": "node_12", + "type": "provider" + }, + { + "apply": {}, + "cluster": "root", + "cost": {}, + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "policy": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_13", + "type": "" + } + ], + "totalcost": "" +} \ No newline at end of file diff --git a/npm/example/demo-4/simple-demo-4.svg b/npm/example/demo-4/simple-demo-4.svg new file mode 100644 index 0000000..ce7356d --- /dev/null +++ b/npm/example/demo-4/simple-demo-4.svg @@ -0,0 +1,110 @@ + + + + + + + + + +[root] ibm_cis.web_domain + +ibm_cis + +web_domain + +state + ++ + +apply + + +controls + + + +[root] ibm_resource_group.web_group + +ibm_resource_group + +web_group + +state + ++ + +apply + + +controls + + + +[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group + + + + + +[root] ibm_cis_domain.web_domain + +ibm_cis_domain + +web_domain + +state + ++ + +apply + + +controls + + + +[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain + + + + + +[root] ibm_cis_domain_settings.web_domain + +ibm_cis_domain_settings + +web_domain + +state + ++ + +apply + + +controls + + + +[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain + + + + + +[root] root + +[root] root + + + +[root] root->[root] ibm_cis_domain_settings.web_domain + + + + + diff --git a/npm/example/index.html b/npm/example/index.html index 6936f6f..28d2491 100644 --- a/npm/example/index.html +++ b/npm/example/index.html @@ -193,6 +193,7 @@ '#graph': { disableSvgZoom: true, disableTooltip: true, + disableSvgHover: true, htmlCallback: function (html) { var panel = document.querySelector('#side-panel'); panel.innerHTML = html; @@ -201,7 +202,7 @@ } } - blastradius('#graph', './demo-1/simple-demo-1.svg', './demo-1/simple-demo-1.json', br_state); + blastradius('#graph', './demo-1/demo-1.svg', './demo-1/demo-1.json', br_state); var demo1 = document.querySelector('#demo-1'); var demo2 = document.querySelector('#demo-2'); @@ -210,7 +211,7 @@ demo1.addEventListener('click', function (event) { // blastradius('#graph', './demo-1/demonew-1.svg', './demo-1/demo-1.json', br_state); - blastradius('#graph', './demo-1/simple-demo-1.svg', './demo-1/simple-demo-1.json', br_state); + blastradius('#graph', './demo-1/demo-1.svg', './demo-1/demo-1.json', br_state); }) demo2.addEventListener('click', function (event) { // blastradius('#graph', './demo-2/demonew-2.svg', './demo-2/demo-2.json', br_state); @@ -221,7 +222,7 @@ blastradius('#graph', './demo-3/simple-demo-3.svg', './demo-3/simple-demo-3.json', br_state); }) demo4.addEventListener('click', function (event) { - blastradius('#graph', './demo-4/demo-4.svg', './demo-4/demo-4.json', br_state); + blastradius('#graph', './demo-4/simple-demo-4.svg', './demo-4/simple-demo-4.json', br_state); }) })() diff --git a/npm/src/blast-radius.js b/npm/src/blast-radius.js index 5ccf37e..5c9baf4 100644 --- a/npm/src/blast-radius.js +++ b/npm/src/blast-radius.js @@ -134,7 +134,7 @@ var blastradius = function (selector, svg_url, json_url, br_state) { var color = (state['color'] ? d3.scaleOrdinal(state['color']) : d3.scaleOrdinal(d3['schemeCategory20'])); var disableSvgZoom = state['disableSvgZoom'] ? state['disableSvgZoom'] : false; var disableTooltip = state['disableTooltip'] ? state['disableTooltip'] : false; - + var disableSvgHover = state['disableSvgHover'] ? state['disableSvgHover'] : false; // 1st pull down the svg, and append it to the DOM as a child // of our selector. If added as , we wouldn't // be able to manipulate x.svg with d3.js, or other DOM fns. @@ -322,6 +322,27 @@ var blastradius = function (selector, svg_url, json_url, br_state) { return ttip; } + var cost_html = function(d) { + var cost_title = "cost info" + var ttip = ''; + ttip += title_html(d); + ttip += '

    ' + cost_title + '

    '+(d.cost.length == 0 ? '' : "

    " + JSON.stringify(d.cost, replacer, 2) + "


    "+ '
    ') ; + ttip += child_html(d); + + + return ttip; + } + + var policy_html = function(d) { + var policy_title = "policy info" + var ttip = ''; + ttip += title_html(d); + ttip += '

    ' + policy_title + '

    '+(d.policy.length == 0 ? '' : "

    " + JSON.stringify(d.policy, replacer, 2) + "


    "+ '
    '); + ttip += child_html(d); + return ttip; + } + + var get_downstream_nodes = function (node) { var children = {}; children[node.label] = node; @@ -536,6 +557,17 @@ var blastradius = function (selector, svg_url, json_url, br_state) { state.htmlCallback && state.htmlCallback(html); } + var costnode_click = function (d) { + var html = cost_html(d); + state.htmlCallback && state.htmlCallback(html); + } + var policynode_click = function (d) { + var html = policy_html(d); + state.htmlCallback && state.htmlCallback(html); + } + + + var gnodes = svg.selectAll('g.node') .data(svg_nodes, function (d) { return (d && d.svg_id) || d3.select(this).attr("id"); @@ -543,7 +575,7 @@ var blastradius = function (selector, svg_url, json_url, br_state) { gnodes.each(function (d, i) { var _self = this; - var selectorMain, selectorTFState, selectorPlan, selectorApply; + var selectorMain, selectorTFState, selectorPlan, selectorApply,selectorCost,selectorPolicy; var polysize = d3.select(_self).selectAll('polygon').size(); @@ -557,19 +589,23 @@ var blastradius = function (selector, svg_url, json_url, br_state) { if (polysize == 3) { selectorMain = "polygon:nth-last-of-type(3)"; - selectorTFState = "polygon:nth-last-of-type(2)"; + selectorTFState = "polygon:nth-last-of-type(1)"; } - if (polysize == 5) { - selectorMain = "polygon:nth-last-of-type(5)"; - selectorTFState = "polygon:nth-last-of-type(4)"; - selectorPlan = "polygon:nth-last-of-type(3)"; - selectorApply = "polygon:nth-last-of-type(2)"; + + if (polysize == 7) { + selectorMain = "polygon:nth-last-of-type(7)"; + selectorTFState = "polygon:nth-last-of-type(5)"; + selectorPlan = "polygon:nth-last-of-type(4)"; + selectorApply = "polygon:nth-last-of-type(3)"; + selectorCost = "polygon:nth-last-of-type(2)"; + selectorPolicy = "polygon:nth-last-of-type(1)"; } if (selectorMain !== undefined) { d3.select(_self) - .selectAll(selectorMain) + .select(selectorMain) + .on('click', node_mousedown) .style('fill', (function (i) { return color(d.group); })); @@ -624,9 +660,54 @@ var blastradius = function (selector, svg_url, json_url, br_state) { return '#000'; })); } + + if (!selectorCost !== undefined) { + d3.select(_self) + .select(selectorCost) + .on('click',costnode_click) + .style('fill', (function (d) { + if (d){ + if(d.cost == "no cost available" || d.cost == null) + { + return "#808080"; + } + else{ + return "#fff"; + } + } + else + return '#000'; + })); + } + + if (!selectorPolicy !== undefined) { + d3.select(_self) + .select(selectorPolicy) + .on('click',policynode_click) + .style('fill', (function (d) { + if (d){ + if(d.policy == "no policy available" || d.policy == null) + { + return "#808080"; + } + else if(d.policy != null && d.policy.decision == "failed" ) + { + return "#ff0000"; + } + else{ + return "#00ff40"; + } + + } + else + return '#000'; + })); + } }); + // colorize nodes, and add mouse candy. + if (!disableSvgHover) { gnodes .on('mouseenter', node_mouseenter) .on('mouseleave', node_mouseleave) @@ -634,6 +715,8 @@ var blastradius = function (selector, svg_url, json_url, br_state) { .on('mouseout', node_mouseout) .on('mousedown', node_mousedown); + } + // colorize modules svg.selectAll('polygon') .each(function (d, i) { diff --git a/setup.py b/setup.py index a91605a..89dcd01 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ here = path.abspath(path.dirname(__file__)) # Get the long description from the README file -with open(path.join(here, 'README.md'), encoding='utf-8') as f: +with open(path.join(here, 'README.md')) as f: long_description = f.read() # Implements parse_requirements as standalone functionality From ce8e614cde077bbc76636af085e53c05daffb4e8 Mon Sep 17 00:00:00 2001 From: "Nishu.Bharti1" Date: Fri, 18 Sep 2020 09:52:44 +0530 Subject: [PATCH 04/25] corrected title name --- blastradius/server/static/js/blast-radius-ext.js | 3 +-- npm/src/blast-radius.js | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/blastradius/server/static/js/blast-radius-ext.js b/blastradius/server/static/js/blast-radius-ext.js index e569bb2..994ca96 100644 --- a/blastradius/server/static/js/blast-radius-ext.js +++ b/blastradius/server/static/js/blast-radius-ext.js @@ -192,7 +192,7 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { } var render_policy = function(d) { - var policy_title = "policy info" + var policy_title = "controls info" var ttip = ''; ttip += title_html(d); ttip += '

    ' + policy_title + '

    '+(d.policy.length == 0 ? '' : "

    " + JSON.stringify(d.policy, replacer, 2) + "


    "+ '
    '); @@ -790,7 +790,6 @@ blastradiusnew = function (selector, svg_url, json_url,br_state) { // without this, selecting an item with will submit the form // and force a page refresh. not the desired behavior. $(selector + '-search-form').submit(function(){return false;}); - } // end if(interactive) }); // end json success callback }); // end svg scuccess callback diff --git a/npm/src/blast-radius.js b/npm/src/blast-radius.js index 5c9baf4..d3c136b 100644 --- a/npm/src/blast-radius.js +++ b/npm/src/blast-radius.js @@ -334,7 +334,7 @@ var blastradius = function (selector, svg_url, json_url, br_state) { } var policy_html = function(d) { - var policy_title = "policy info" + var policy_title = "controls info" var ttip = ''; ttip += title_html(d); ttip += '

    ' + policy_title + '

    '+(d.policy.length == 0 ? '' : "

    " + JSON.stringify(d.policy, replacer, 2) + "


    "+ '
    '); From f6a490ce67a93e251c8dc6892b1ebfe1f7807e6f Mon Sep 17 00:00:00 2001 From: "Nishu.Bharti1" Date: Fri, 18 Sep 2020 10:17:04 +0530 Subject: [PATCH 05/25] added version name --- README.md | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 027fe6b..5e9b3b2 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ For fastest way to get up and running with blast-radius is as follows: * Download and install the wheel files from the [release](https://github.com/nishubharti/blast-radius/releases) ``` - easy_install blastradius-0.1.25.0-py3-none-any.whl + easy_install blastradius-0.1.25.1-py3-none-any.whl ``` * Once installed just point Blast Radius at any initialized Terraform directory: ```sh diff --git a/setup.py b/setup.py index 89dcd01..7a9d27f 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='blastradius', - version='0.1.25.0', + version='0.1.25.1', description='Interactive Terraform graph visualizations', long_description=open('README.md').read(), long_description_content_type='text/markdown', From a61783dfa51da70118d9cfe18f683f92cd3feb41 Mon Sep 17 00:00:00 2001 From: "Nishu.Bharti1" Date: Wed, 23 Sep 2020 13:09:07 +0530 Subject: [PATCH 06/25] removed hcl2json dependency --- README.md | 2 +- blastradius/handlers/terraform.py | 17 +++++------------ requirements.txt | 2 +- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 5e9b3b2..ad4b149 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ You can read more details in the [documentation](doc/embedded.md) ## Implementation Details *Blast Radius* uses the [Graphviz][] package to layout graph diagrams, -[hcl2json](https://github.com/tmccombs/hcl2json) to parse [Terraform][] configuration, and [d3.js](https://d3js.org/) to implement interactive features and animations. +[hcl] to parse [Terraform][] configuration, and [d3.js](https://d3js.org/) to implement interactive features and animations. --- diff --git a/blastradius/handlers/terraform.py b/blastradius/handlers/terraform.py index 7b64ac6..6f22ba5 100644 --- a/blastradius/handlers/terraform.py +++ b/blastradius/handlers/terraform.py @@ -4,9 +4,9 @@ import os import re import json +import hcl # 3rd party libraries -# hcl2json convert hcl to json import subprocess from pkg_resources import resource_filename @@ -20,19 +20,12 @@ def __init__(self, directory=None, settings=None): self.directory = directory if directory else os.getcwd() self.config_str:str = '' iterator = iglob( self.directory + '/*.tf') - data = {} for fname in iterator: - out=subprocess.getoutput(["hcl2json {}".format(fname)]) - file_data = json.loads(out) - for key in file_data: - if not key in data.keys(): - data.update(file_data) - else: - for k,v in file_data[key].items(): - data[key][k]=v - - self.config = data + with open(fname, 'r', encoding='utf-8') as f: + self.config_str += f.read() + ' ' + config_io = io.StringIO(self.config_str) + self.config = hcl.load(config_io) # then any submodules it may contain, skipping any remote modules for # the time being. diff --git a/requirements.txt b/requirements.txt index e1bbb8b..d385f05 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,5 @@ Jinja2==2.10.1 Flask==1.0.3 beautifulsoup4==4.7.1 ply>=3.11 -pyhcl==0.3.12 +pyhcl==0.4.4 From 23fe4a7750ce8dd8176af333a4c3dcb2194b1457 Mon Sep 17 00:00:00 2001 From: "Nishu.Bharti1" Date: Wed, 23 Sep 2020 13:21:44 +0530 Subject: [PATCH 07/25] added version name --- README.md | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad4b149..6541c54 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ For fastest way to get up and running with blast-radius is as follows: * Download and install the wheel files from the [release](https://github.com/nishubharti/blast-radius/releases) ``` - easy_install blastradius-0.1.25.1-py3-none-any.whl + easy_install blastradius-0.1.25.1.0-py3-none-any.whl ``` * Once installed just point Blast Radius at any initialized Terraform directory: ```sh diff --git a/setup.py b/setup.py index 7a9d27f..5a46ead 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='blastradius', - version='0.1.25.1', + version='0.1.25.1.0', description='Interactive Terraform graph visualizations', long_description=open('README.md').read(), long_description_content_type='text/markdown', From c8ba26bde7748bbc2b5434a0c9066dc61b7a6623 Mon Sep 17 00:00:00 2001 From: "Nishu.Bharti1" Date: Wed, 23 Sep 2020 15:20:51 +0530 Subject: [PATCH 08/25] modified version --- README.md | 2 +- blastradius/handlers/terraform.py | 13 ++++++------- setup.py | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6541c54..fa50365 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ For fastest way to get up and running with blast-radius is as follows: * Download and install the wheel files from the [release](https://github.com/nishubharti/blast-radius/releases) ``` - easy_install blastradius-0.1.25.1.0-py3-none-any.whl + easy_install blastradius-0.1.25.2-py3-none-any.whl ``` * Once installed just point Blast Radius at any initialized Terraform directory: ```sh diff --git a/blastradius/handlers/terraform.py b/blastradius/handlers/terraform.py index 6f22ba5..8cc6e12 100644 --- a/blastradius/handlers/terraform.py +++ b/blastradius/handlers/terraform.py @@ -3,12 +3,9 @@ import io import os import re -import json -import hcl # 3rd party libraries -import subprocess -from pkg_resources import resource_filename +import hcl # hashicorp configuration language (.tf) class Terraform: """Finds terraform/hcl files (*.tf) in CWD or a supplied directory, parses @@ -16,11 +13,12 @@ class Terraform: def __init__(self, directory=None, settings=None): self.settings = settings if settings else {} + # handle the root module first... self.directory = directory if directory else os.getcwd() - self.config_str:str = '' + #print(self.directory) + self.config_str = '' iterator = iglob( self.directory + '/*.tf') - for fname in iterator: with open(fname, 'r', encoding='utf-8') as f: self.config_str += f.read() + ' ' @@ -68,6 +66,7 @@ def __init__(self, directory=None, settings=None): # fixme path join. eek. self.modules[name] = Terraform(directory=self.directory+'/'+source, settings=mod) + def get_def(self, node, module_depth=0): # FIXME 'data' resources (incorrectly) handled as modules, necessitating @@ -90,7 +89,7 @@ def get_def(self, node, module_depth=0): '' : lambda x: '' } if node.type in types: return types[node.type](node) - + # resources are a little different _many_ possible types, # nested within the 'resource' field. else: diff --git a/setup.py b/setup.py index 5a46ead..93dc71a 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='blastradius', - version='0.1.25.1.0', + version='0.1.25.2', description='Interactive Terraform graph visualizations', long_description=open('README.md').read(), long_description_content_type='text/markdown', From 99d68f9b50254c07a36bbabf11e2f0d6b751e1f2 Mon Sep 17 00:00:00 2001 From: VishwaKumar Patil Date: Mon, 19 Oct 2020 17:46:42 +0530 Subject: [PATCH 09/25] zoom reset feature (#10) Co-authored-by: VishwaKumar --- npm/example/index.html | 6 +++++- npm/src/blast-radius.js | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/npm/example/index.html b/npm/example/index.html index 28d2491..beea562 100644 --- a/npm/example/index.html +++ b/npm/example/index.html @@ -65,6 +65,10 @@ + + @@ -164,34 +153,7 @@ -
    -
    - - - - - - - - - - - - - - - - - - - - - -
    tf state
    plan
    action not applied
    failed
    success
    -
    - - -
    +
    @@ -203,39 +165,15 @@ // br_state['#graph'] maintains state for this instance of blastradius var br_state = { '#graph': {} } - var id1 = document.getElementById("graph-radio"); - var id2 = document.getElementById("graph-radio-new"); - var id3 = document.getElementById("graph-radio-simple"); + var id1 = document.getElementById("graph-radio-extended"); (function () { // your page initialization code here // the DOM will be available here if (id1.checked) { - blastradius('#graph', '/graph.svg', '/graph.json', br_state); - } - else if (id2.checked) { - blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); - } - else if (id3.checked) { - blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); - } - })(); - - function Showgraph() { - var id1 = document.getElementById("graph-radio"); - var id2 = document.getElementById("graph-radio-new"); - var id3 = document.getElementById("graph-radio-simple"); - if (id1.checked) { - - blastradius('#graph', '/graph.svg', '/graph.json', br_state); - } - else if (id2.checked) { - blastradiusnew('#graph', '/graphnew.svg', '/graph.json', br_state); - } - else if (id3.checked) { blastradiusnew('#graph', '/graphsimple.svg', '/graph.json', br_state); } - } + })(); function closeNav() { document.getElementById("mySidenav").style.width = "0"; diff --git a/npm/example/demo-1/demo-1.json b/npm/example/demo-1/demo-1.json deleted file mode 100644 index c509b3d..0000000 --- a/npm/example/demo-1/demo-1.json +++ /dev/null @@ -1,609 +0,0 @@ -{ - "edges": [ - { - "edge_type": 1, - "source": "[root] ibm_cis.web_domain", - "svg_id": "edge_0", - "target": "[root] ibm_resource_group.web_group" - }, - { - "edge_type": 1, - "source": "[root] ibm_cis_domain.web_domain", - "svg_id": "edge_1", - "target": "[root] ibm_cis.web_domain" - }, - { - "edge_type": 1, - "source": "[root] ibm_cis_domain.web_domain", - "svg_id": "edge_2", - "target": "[root] var.domain" - }, - { - "edge_type": 1, - "source": "[root] ibm_cis_domain_settings.web_domain", - "svg_id": "edge_3", - "target": "[root] ibm_cis_domain.web_domain" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_group.web_group", - "svg_id": "edge_4", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_group.web_group", - "svg_id": "edge_5", - "target": "[root] var.resource_group" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_6", - "target": "[root] ibm_cis_domain_settings.web_domain" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_7", - "target": "[root] output.web_dns_name" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_8", - "target": "[root] var.datacenter1" - }, - { - "edge_type": 2, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_9", - "target": "[root] var.datacenter2" - }, - { - "edge_type": 1, - "source": "[root] output.web_dns_name", - "svg_id": "edge_10", - "target": "[root] var.dns_name" - }, - { - "edge_type": 1, - "source": "[root] output.web_dns_name", - "svg_id": "edge_11", - "target": "[root] var.domain" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_12", - "target": "[root] ibm_cis_domain_settings.web_domain" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_13", - "target": "[root] meta.count-boundary (EachMode fixup)" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_14", - "target": "[root] provider.ibm (close)" - }, - { - "edge_type": 3, - "source": "[root] var.datacenter1", - "svg_id": "edge_15", - "target": "[root] var.datacenter2" - } - ], - "nodes": [ - { - "apply": null, - "cluster": "root", - "cost": "no cost available", - "definition": { - "location": "global", - "name": "web_domain", - "plan": "standard", - "resource_group_id": "${ibm_resource_group.web_group.id}" - }, - "group": 20000, - "label": "[root] ibm_cis.web_domain", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_cis.web_domain", - "change": { - "actions": [ - "create" - ], - "after": { - "location": "global", - "name": "web_domain", - "parameters": null, - "plan": "standard", - "tags": null, - "timeouts": null - }, - "after_unknown": { - "guid": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_id": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "service": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "web_domain", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_cis", - "values": { - "location": "global", - "name": "web_domain", - "parameters": null, - "plan": "standard", - "tags": null, - "timeouts": null - } - }, - "policy": "no policy available", - "resource_name": "web_domain", - "simple_name": "ibm_cis.web_domain", - "svg_id": "node_0", - "type": "ibm_cis" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "web_domain", - "provider": "provider.ibm", - "type": "ibm_cis_domain" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "cis_id": "${ibm_cis.web_domain.id}", - "domain": "${var.domain}" - }, - "group": 20000, - "label": "[root] ibm_cis_domain.web_domain", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_cis_domain.web_domain", - "change": { - "actions": [ - "create" - ], - "after": { - "domain": "example.com" - }, - "after_unknown": { - "cis_id": true, - "id": true, - "name_servers": true, - "original_name_servers": true, - "paused": true, - "status": true - }, - "before": null - }, - "mode": "managed", - "name": "web_domain", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_cis_domain", - "values": { - "domain": "example.com" - } - }, - "policy": { - "decision": "pass", - "name": "web_domain", - "policies": [ - { - "capsule": "SecurityCapsule", - "control": "SecurityControl", - "rules": [ - "ibm_cis_domain_settings" - ], - "severity": "" - }, - { - "capsule": "ConfigCapsule", - "control": "ConfigurationControl", - "rules": [ - "too_many_admins", - "too_many_managers" - ], - "severity": "" - } - ], - "type": "ibm_cis_domain" - }, - "resource_name": "web_domain", - "simple_name": "ibm_cis_domain.web_domain", - "svg_id": "node_1", - "type": "ibm_cis_domain" - }, - { - "apply": { - "instances": [], - "mode": "managed", - "name": "web_domain", - "provider": "provider.ibm", - "type": "ibm_cis_domain_settings" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "cis_id": "${ibm_cis.web_domain.id}", - "domain_id": "${ibm_cis_domain.web_domain.id}", - "min_tls_version": "1.2", - "ssl": "flexible", - "waf": "on" - }, - "group": 20000, - "label": "[root] ibm_cis_domain_settings.web_domain", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_cis_domain_settings.web_domain", - "change": { - "actions": [ - "create" - ], - "after": { - "min_tls_version": "1.2", - "ssl": "flexible", - "waf": "on" - }, - "after_unknown": { - "always_use_https": true, - "automatic_https_rewrites": true, - "brotli": true, - "browser_check": true, - "certificate_status": true, - "cis_id": true, - "cname_flattening": true, - "domain_id": true, - "hotlink_protection": true, - "http2": true, - "id": true, - "image_load_optimization": true, - "image_size_optimization": true, - "ip_geolocation": true, - "ipv6": true, - "opportunistic_encryption": true, - "origin_error_page_pass_thru": true, - "prefetch_preload": true, - "pseudo_ipv4": true, - "response_buffering": true, - "script_load_optimization": true, - "server_side_exclude": true, - "tls_client_auth": true, - "true_client_ip_header": true, - "websockets": true - }, - "before": null - }, - "mode": "managed", - "name": "web_domain", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_cis_domain_settings", - "values": { - "min_tls_version": "1.2", - "ssl": "flexible", - "waf": "on" - } - }, - "policy": { - "decision": "failed", - "name": "web_domain", - "policies": [ - { - "capsule": "SecurityCapsule", - "control": "SecurityControl", - "rules": [ - "ibm_cis_domain_settings" - ], - "severity": "" - }, - { - "capsule": "ConfigCapsule", - "control": "ConfigurationControl", - "rules": [ - "too_many_admins", - "too_many_managers" - ], - "severity": "" - } - ], - "type": "ibm_cis_domain_settings" - }, - "resource_name": "web_domain", - "simple_name": "ibm_cis_domain_settings.web_domain", - "svg_id": "node_2", - "type": "ibm_cis_domain_settings" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "default": false, - "id": "769cf60b1ecc4cb092cab5e7af075d3f", - "name": "gilad-test-group1", - "quota_id": null, - "state": "ACTIVE", - "tags": null - }, - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "web_group", - "provider": "provider.ibm", - "type": "ibm_resource_group" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "name": "${var.resource_group}" - }, - "group": 20000, - "label": "[root] ibm_resource_group.web_group", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_resource_group.web_group", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "gilad-test-group", - "quota_id": null, - "tags": null - }, - "after_unknown": { - "default": true, - "id": true, - "state": true - }, - "before": null - }, - "mode": "managed", - "name": "web_group", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_resource_group", - "values": { - "name": "gilad-test-group", - "quota_id": null, - "tags": null - } - }, - "policy": "no policy available", - "resource_name": "web_group", - "simple_name": "ibm_resource_group.web_group", - "svg_id": "node_3", - "type": "ibm_resource_group" - }, - { - "apply": null, - "cluster": "root", - "cost": "no cost available", - "definition": { - "value": "http://${var.dns_name}${var.domain}" - }, - "group": 20000, - "label": "[root] output.web_dns_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "web_dns_name", - "simple_name": "output.web_dns_name", - "svg_id": "node_4", - "type": "output" - }, - { - "apply": {}, - "cluster": "root", - "cost": "cost data to be displayed here", - "definition": {}, - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": "policy data to be displayed here", - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_5", - "type": "provider" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", - "cost": "no cost available", - "definition": { - "default": "lon02" - }, - "group": 20000, - "label": "[root] var.datacenter1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "datacenter1", - "simple_name": "var.datacenter1", - "svg_id": "node_6", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", - "cost": "no cost available", - "definition": { - "default": "ams03" - }, - "group": 20000, - "label": "[root] var.datacenter2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "datacenter2", - "simple_name": "var.datacenter2", - "svg_id": "node_7", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] output.web_dns_name_var_", - "cost": "no cost available", - "definition": { - "default": "", - "description": "DNS name (prefix) for website, including '.', 'www.'" - }, - "group": 20000, - "label": "[root] var.dns_name", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "dns_name", - "simple_name": "var.dns_name", - "svg_id": "node_8", - "type": "var" - }, - { - "apply": null, - "cluster": "root", - "cost": "no cost available", - "definition": { - "default": "example.com", - "description": "DNS Domain for web server" - }, - "group": 20000, - "label": "[root] var.domain", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "domain", - "simple_name": "var.domain", - "svg_id": "node_9", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_resource_group.web_group_var_", - "cost": "no cost available", - "definition": { - "default": "gilad-test-group1", - "description": "IBM Cloud Resource Group" - }, - "group": 20000, - "label": "[root] var.resource_group", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "resource_group", - "simple_name": "var.resource_group", - "svg_id": "node_10", - "type": "var" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_11", - "type": "meta" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": {}, - "group": 20000, - "label": "[root] provider.ibm (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", - "svg_id": "node_12", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": "", - "group": 20000, - "label": "[root] root", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "", - "simple_name": "root", - "svg_id": "node_13", - "type": "" - } - ], - "totalcost": "" -} \ No newline at end of file diff --git a/npm/example/demo-1/demo-1.svg b/npm/example/demo-1/demo-1.svg deleted file mode 100644 index bf35cec..0000000 --- a/npm/example/demo-1/demo-1.svg +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - - - -cluster[root] meta.count-boundary (EachMode fixup)_var_ - - -cluster[root] output.web_dns_name_var_ - - -cluster[root] ibm_resource_group.web_group_var_ - - - -[root] ibm_cis.web_domain - -ibm_cis - -web_domain - - - -[root] ibm_resource_group.web_group - -ibm_resource_group - -web_group - - - -[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group - - - - - -[root] ibm_cis_domain.web_domain - -ibm_cis_domain - -web_domain - - - -[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain - - - - - -[root] var.domain - -var - -domain - - - -[root] ibm_cis_domain.web_domain->[root] var.domain - - - - - -[root] ibm_cis_domain_settings.web_domain - -ibm_cis_domain_settings - -web_domain - - - -[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain - - - - - -[root] provider.ibm - -provider - -ibm - - - -[root] ibm_resource_group.web_group->[root] provider.ibm - - - - - -[root] var.resource_group - -var - -resource_group - - - -[root] ibm_resource_group.web_group->[root] var.resource_group - - - - - -[root] output.web_dns_name - -output - -web_dns_name - - - -[root] output.web_dns_name->[root] var.domain - - - - - -[root] var.dns_name - -var - -dns_name - - - -[root] output.web_dns_name->[root] var.dns_name - - - - - -[root] meta.count-boundary (EachMode fixup) - -meta - -count-boundary - - - -[root] meta.count-boundary (EachMode fixup)->[root] ibm_cis_domain_settings.web_domain - - - - - -[root] meta.count-boundary (EachMode fixup)->[root] output.web_dns_name - - - - - -[root] var.datacenter1 - -var - -datacenter1 - - - -[root] meta.count-boundary (EachMode fixup)->[root] var.datacenter1 - - - - - -[root] provider.ibm (close) - -provider - -ibm - - - -[root] provider.ibm (close)->[root] ibm_cis_domain_settings.web_domain - - - - - -[root] root - -[root] root - - - -[root] root->[root] meta.count-boundary (EachMode fixup) - - - - - -[root] root->[root] provider.ibm (close) - - - - - -[root] var.datacenter2 - -var - -datacenter2 - - - -[root] var.datacenter1->[root] var.datacenter2 - - - - diff --git a/npm/example/demo-1/visualization.json b/npm/example/demo-1/visualization.json new file mode 100644 index 0000000..dde7444 --- /dev/null +++ b/npm/example/demo-1/visualization.json @@ -0,0 +1,725 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.testacc_subnet", + "svg_id": "edge_0", + "target": "[root] ibm_is_vpc.testacc_vpc" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_1", + "target": "[root] ibm_is_instance.testacc_instance1" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_2", + "target": "[root] ibm_is_lb.lb" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_3", + "target": "[root] ibm_is_subnet.testacc_subnet" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_4", + "target": "[root] ibm_is_volume.testacc_volume" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_5", + "target": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway" + } + ], + "nodes": [ + { + "apply": null, + "cluster": "root", + "cost": { + "depends": [ + { + "cost": 11.807999999999998, + "quantity": 1, + "title": "is.volume" + } + ], + "estimateType": "", + "features": null, + "id": "testacc_instance1", + "lineitemtotal": "74.04 USD", + "planID": "66380d42-d4a9-4627-88fa-7b6631e5bd63", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_instance", + "title": "Virtual Server" + }, + "definition": { + "image": [ + "7eb4e35b-4257-56f8-d7da-326d85452591" + ], + "keys": [ + [ + "eac87f33-0c00-4da7-aa66-dc2d972148bd" + ] + ], + "name": [ + "testinstance" + ], + "primary_network_interface": [ + { + "port_speed": [ + "1000" + ], + "subnet": [ + "70be8eae-134c-436e-a86e-04849f84cb34" + ] + } + ], + "profile": [ + "b-2x8" + ], + "vpc": [ + "01eda778-b822-43a2-816d-d30713df5e13" + ], + "zone": [ + "us-south-1" + ] + }, + "group": 20000, + "label": "[root] ibm_is_instance.testacc_instance1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_instance.testacc_instance1", + "change": { + "actions": [ + "create" + ], + "after": { + "generation": null, + "image": "7eb4e35b-4257-56f8-d7da-326d85452591", + "keys": [ + "eac87f33-0c00-4da7-aa66-dc2d972148bd" + ], + "name": "testinstance", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": 1000, + "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" + } + ], + "profile": "b-2x8", + "timeouts": null, + "user_data": null, + "volumes": null, + "vpc": "01eda778-b822-43a2-816d-d30713df5e13", + "zone": "us-south-1" + }, + "after_unknown": { + "boot_volume": true, + "gpu": true, + "id": true, + "keys": [ + false + ], + "memory": true, + "network_interfaces": [], + "primary_network_interface": [ + { + "id": true, + "name": true, + "primary_ipv4_address": true, + "security_groups": true + } + ], + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true, + "vcpu": true, + "volume_attachments": true + }, + "before": null + }, + "mode": "managed", + "name": "testacc_instance1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_instance", + "values": { + "generation": null, + "image": "7eb4e35b-4257-56f8-d7da-326d85452591", + "keys": [ + "eac87f33-0c00-4da7-aa66-dc2d972148bd" + ], + "name": "testinstance", + "network_interfaces": [], + "primary_network_interface": [ + { + "port_speed": 1000, + "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" + } + ], + "profile": "b-2x8", + "timeouts": null, + "user_data": null, + "volumes": null, + "vpc": "01eda778-b822-43a2-816d-d30713df5e13", + "zone": "us-south-1" + } + }, + "policy": "no policy available", + "resource_name": "testacc_instance1", + "simple_name": "ibm_is_instance.testacc_instance1", + "svg_id": "node_0", + "time": "no time estimation available", + "type": "ibm_is_instance" + }, + { + "apply": null, + "cluster": "root", + "cost": { + "depends": [ + { + "cost": 0, + "quantity": 1, + "title": "is.floating-ip" + } + ], + "estimateType": "", + "features": null, + "id": "lb", + "lineitemtotal": "0 USD", + "planID": "6092eed9-b0a4-4933-86dd-5532b22274dc", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_lb", + "title": "Load Balancer" + }, + "definition": { + "name": [ + "loadbalancer1" + ], + "subnets": [ + [ + "04813493-15d6-4150-9948-6cc646cb67f2" + ] + ] + }, + "group": 20000, + "label": "[root] ibm_is_lb.lb", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_lb.lb", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "loadbalancer1", + "subnets": [ + "04813493-15d6-4150-9948-6cc646cb67f2" + ], + "timeouts": null, + "type": "public" + }, + "after_unknown": { + "hostname": true, + "id": true, + "operating_status": true, + "private_ips": true, + "public_ips": true, + "resource_controller_url": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "status": true, + "subnets": [ + false + ], + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "lb", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_lb", + "values": { + "name": "loadbalancer1", + "subnets": [ + "04813493-15d6-4150-9948-6cc646cb67f2" + ], + "timeouts": null, + "type": "public" + } + }, + "policy": "no policy available", + "resource_name": "lb", + "simple_name": "ibm_is_lb.lb", + "svg_id": "node_1", + "time": "no time estimation available", + "type": "ibm_is_lb" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "available_ipv4_address_count": null, + "id": "d4f8ab01-34b3-4f61-84d7-31b02db999a6", + "ip_version": "ipv4", + "ipv4_cidr_block": "10.240.0.0/24", + "ipv6_cidr_block": null, + "name": "testsubnet", + "network_acl": "ae34aaf3-67cd-4ea9-9691-3e0b884ed287", + "public_gateway": "", + "resource_controller_url": "https://cloud.ibm.com/vpc/network/subnets", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::subnet:d4f8ab01-34b3-4f61-84d7-31b02db999a6", + "resource_group": null, + "resource_group_name": null, + "resource_name": "testsubnet", + "resource_status": "available", + "status": "available", + "timeouts": null, + "total_ipv4_address_count": 256, + "vpc": "c1a6b21d-3493-4087-a691-90b631428a13", + "zone": "us-south-1" + }, + "depends_on": [ + "ibm_is_vpc.testacc_vpc" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "testacc_subnet", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "ipv4_cidr_block": [ + "10.240.0.0/24" + ], + "name": [ + "testsubnet" + ], + "vpc": [ + "${ibm_is_vpc.testacc_vpc.id}" + ], + "zone": [ + "us-south-1" + ] + }, + "group": 20000, + "label": "[root] ibm_is_subnet.testacc_subnet", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.testacc_subnet", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "ipv4_cidr_block": "10.240.0.0/24", + "name": "testsubnet", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "total_ipv4_address_count": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "testacc_subnet", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "ipv4_cidr_block": "10.240.0.0/24", + "name": "testsubnet", + "public_gateway": null, + "timeouts": null, + "zone": "us-south-1" + } + }, + "policy": "no policy available", + "resource_name": "testacc_subnet", + "simple_name": "ibm_is_subnet.testacc_subnet", + "svg_id": "node_2", + "time": "no time estimation available", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "capacity": 100, + "crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::volume:90537bce-3c80-4c8e-bb90-592e8b15244c", + "encryption_key": null, + "id": "90537bce-3c80-4c8e-bb90-592e8b15244c", + "iops": 3000, + "name": "testvolume", + "profile": "10iops-tier", + "resource_controller_url": "https://cloud.ibm.com/vpc/storage/storageVolumes", + "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::volume:90537bce-3c80-4c8e-bb90-592e8b15244c", + "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_name": "testvolume", + "resource_status": "available", + "status": "available", + "tags": [], + "timeouts": null, + "zone": "us-south-1" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "testacc_volume", + "provider": "provider.ibm", + "type": "ibm_is_volume" + }, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "testacc_volume", + "lineitemtotal": "0 USD", + "planID": "64841f3b-3a6f-4893-831a-54a6abaf1dd7", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_volume", + "title": "Storage Volume" + }, + "definition": { + "name": [ + "testvolume" + ], + "profile": [ + "10iops-tier" + ], + "zone": [ + "us-south-1" + ] + }, + "group": 20000, + "label": "[root] ibm_is_volume.testacc_volume", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_volume.testacc_volume", + "change": { + "actions": [ + "create" + ], + "after": { + "capacity": 100, + "name": "testvolume", + "profile": "10iops-tier", + "timeouts": null, + "zone": "us-south-1" + }, + "after_unknown": { + "crn": true, + "encryption_key": true, + "id": true, + "iops": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "testacc_volume", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_volume", + "values": { + "capacity": 100, + "name": "testvolume", + "profile": "10iops-tier", + "timeouts": null, + "zone": "us-south-1" + } + }, + "policy": "no policy available", + "resource_name": "testacc_volume", + "simple_name": "ibm_is_volume.testacc_volume", + "svg_id": "node_3", + "time": "no time estimation available", + "type": "ibm_is_volume" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "address_prefix_management": "auto", + "classic_access": false, + "crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:c1a6b21d-3493-4087-a691-90b631428a13", + "cse_source_addresses": [ + { + "address": "10.249.128.216", + "zone_name": "us-south-3" + }, + { + "address": "10.249.112.158", + "zone_name": "us-south-1" + }, + { + "address": "10.249.120.144", + "zone_name": "us-south-2" + } + ], + "default_network_acl": "ae34aaf3-67cd-4ea9-9691-3e0b884ed287", + "default_security_group": "2d364f0a-a870-42c3-a554-000003125704", + "id": "c1a6b21d-3493-4087-a691-90b631428a13", + "is_default": null, + "name": "testvpc", + "resource_controller_url": "https://cloud.ibm.com/vpc/network/vpcs", + "resource_crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:c1a6b21d-3493-4087-a691-90b631428a13", + "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", + "resource_name": "testvpc", + "resource_status": "available", + "status": "available", + "subnets": [], + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "testacc_vpc", + "provider": "provider.ibm", + "type": "ibm_is_vpc" + }, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "testacc_vpc", + "lineitemtotal": "0 USD", + "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_vpc", + "title": "VPC" + }, + "definition": { + "name": [ + "testvpc" + ] + }, + "group": 20000, + "label": "[root] ibm_is_vpc.testacc_vpc", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.testacc_vpc", + "change": { + "actions": [ + "create" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "testvpc", + "timeouts": null + }, + "after_unknown": { + "crn": true, + "cse_source_addresses": true, + "default_network_acl": true, + "default_security_group": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "subnets": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "testacc_vpc", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "testvpc", + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "testacc_vpc", + "simple_name": "ibm_is_vpc.testacc_vpc", + "svg_id": "node_4", + "time": "no time estimation available", + "type": "ibm_is_vpc" + }, + { + "apply": null, + "cluster": "root", + "cost": { + "depends": [ + { + "cost": 1, + "quantity": 1, + "title": "is.floating-ip" + } + ], + "estimateType": "", + "features": null, + "id": "testacc_vpn_gateway", + "lineitemtotal": "1 USD", + "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_vpn_gateway", + "title": "VPN Gateway" + }, + "definition": { + "name": [ + "test" + ], + "subnet": [ + "a4ce411d-e118-4802-95ad-525e6ea0cfc9" + ] + }, + "group": 20000, + "label": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpn_gateway.testacc_vpn_gateway", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "test", + "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9", + "timeouts": null + }, + "after_unknown": { + "id": true, + "public_ip_address": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "testacc_vpn_gateway", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpn_gateway", + "values": { + "name": "test", + "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9", + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "testacc_vpn_gateway", + "simple_name": "ibm_is_vpn_gateway.testacc_vpn_gateway", + "svg_id": "node_5", + "time": "no time estimation available", + "type": "ibm_is_vpn_gateway" + }, + { + "apply": {}, + "cluster": "root", + "cost": {}, + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "policy": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_6", + "time": {}, + "type": "" + } + ], + "totalcost": "150.07 USD", + "totaltime": "" +} \ No newline at end of file diff --git a/npm/example/demo-1/visualization.svg b/npm/example/demo-1/visualization.svg new file mode 100644 index 0000000..ad3a2dc --- /dev/null +++ b/npm/example/demo-1/visualization.svg @@ -0,0 +1,320 @@ + + + + + + + + + +[root] ibm_is_instance.testacc_instance1 + + + +ibm_is_instance      + + + + +testacc_instance1    + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +74.04 USD + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_lb.lb + + + +ibm_is_lb            + + + + +lb                   + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_subnet.testacc_subnet + + + +ibm_is_subnet        + + + + +testacc_subnet       + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_vpc.testacc_vpc + + + +ibm_is_vpc           + + + + +testacc_vpc          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_subnet.testacc_subnet->[root] ibm_is_vpc.testacc_vpc + + + + + +[root] ibm_is_volume.testacc_volume + + + +ibm_is_volume        + + + + +testacc_volume       + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_vpn_gateway.testacc_vpn_gateway + + + +ibm_is_vpn_gateway   + + + + +testacc_vpn_gateway + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +1 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] root + +[root] root + +150.07 USD + + + +[root] root->[root] ibm_is_instance.testacc_instance1 + + + + + +[root] root->[root] ibm_is_lb.lb + + + + + +[root] root->[root] ibm_is_subnet.testacc_subnet + + + + + +[root] root->[root] ibm_is_volume.testacc_volume + + + + + +[root] root->[root] ibm_is_vpn_gateway.testacc_vpn_gateway + + + + + diff --git a/npm/example/demo-2/visualization.json b/npm/example/demo-2/visualization.json index 2a5b961..6e8bbf9 100644 --- a/npm/example/demo-2/visualization.json +++ b/npm/example/demo-2/visualization.json @@ -2,104 +2,172 @@ "edges": [ { "edge_type": 1, - "source": "[root] ibm_cis.web_domain", + "source": "[root] ibm_cis.demo_web_domain", "svg_id": "edge_0", - "target": "[root] ibm_resource_group.web_group" + "target": "[root] ibm_resource_group.demo_group1" }, { "edge_type": 1, - "source": "[root] ibm_cis_domain.web_domain", + "source": "[root] ibm_cis_domain.demo_web_domain", "svg_id": "edge_1", - "target": "[root] ibm_cis.web_domain" + "target": "[root] ibm_cis.demo_web_domain" }, { "edge_type": 1, - "source": "[root] ibm_cis_domain.web_domain", + "source": "[root] ibm_cis_domain_settings.demo_web_domain", "svg_id": "edge_2", - "target": "[root] var.domain" + "target": "[root] ibm_cis_domain.demo_web_domain" }, { "edge_type": 1, - "source": "[root] ibm_cis_domain_settings.web_domain", + "source": "[root] ibm_container_bind_service.bind_service", "svg_id": "edge_3", - "target": "[root] ibm_cis_domain.web_domain" + "target": "[root] ibm_container_vpc_cluster.cluster" }, { "edge_type": 1, - "source": "[root] ibm_resource_group.web_group", + "source": "[root] ibm_container_bind_service.bind_service", "svg_id": "edge_4", - "target": "[root] provider.ibm" + "target": "[root] ibm_resource_instance.cos_instance" }, { "edge_type": 1, - "source": "[root] ibm_resource_group.web_group", + "source": "[root] ibm_container_vpc_cluster.cluster", "svg_id": "edge_5", - "target": "[root] var.resource_group" + "target": "[root] ibm_is_subnet.subnet1" }, { "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", + "source": "[root] ibm_container_vpc_cluster.cluster", "svg_id": "edge_6", - "target": "[root] ibm_cis_domain_settings.web_domain" + "target": "[root] ibm_resource_group.demo_group1" }, { "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", + "source": "[root] ibm_cos_bucket.standard-ams03", "svg_id": "edge_7", - "target": "[root] output.web_dns_name" + "target": "[root] ibm_kp_key.cos_encrypt" }, { "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", + "source": "[root] ibm_cos_bucket.standard-ams03", "svg_id": "edge_8", - "target": "[root] var.datacenter1" + "target": "[root] ibm_resource_instance.cos_instance" }, { - "edge_type": 2, - "source": "[root] meta.count-boundary (EachMode fixup)", + "edge_type": 1, + "source": "[root] ibm_iam_service_policy.policy", "svg_id": "edge_9", - "target": "[root] var.datacenter2" + "target": "[root] ibm_iam_service_id.serviceID" }, { "edge_type": 1, - "source": "[root] output.web_dns_name", + "source": "[root] ibm_is_subnet.subnet1", "svg_id": "edge_10", - "target": "[root] var.dns_name" + "target": "[root] ibm_is_vpc.vpc1" }, { "edge_type": 1, - "source": "[root] output.web_dns_name", + "source": "[root] ibm_is_subnet.subnet2", "svg_id": "edge_11", - "target": "[root] var.domain" + "target": "[root] ibm_is_vpc.vpc1" }, { "edge_type": 1, - "source": "[root] provider.ibm (close)", + "source": "[root] ibm_kp_key.cos_encrypt", "svg_id": "edge_12", - "target": "[root] ibm_cis_domain_settings.web_domain" + "target": "[root] ibm_resource_instance.kp_instance" }, { "edge_type": 1, - "source": "[root] root", + "source": "[root] ibm_resource_instance.cos_instance", "svg_id": "edge_13", - "target": "[root] meta.count-boundary (EachMode fixup)" + "target": "[root] ibm_resource_group.demo_group1" }, { "edge_type": 1, "source": "[root] root", "svg_id": "edge_14", - "target": "[root] provider.ibm (close)" + "target": "[root] ibm_cis_domain_settings.demo_web_domain" }, { - "edge_type": 3, - "source": "[root] var.datacenter1", + "edge_type": 1, + "source": "[root] root", "svg_id": "edge_15", - "target": "[root] var.datacenter2" + "target": "[root] ibm_container_bind_service.bind_service" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_16", + "target": "[root] ibm_cos_bucket.standard-ams03" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_17", + "target": "[root] ibm_iam_authorization_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_18", + "target": "[root] ibm_iam_service_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_19", + "target": "[root] ibm_iam_user_policy.policy1" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_20", + "target": "[root] ibm_iam_user_policy.policy2" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_21", + "target": "[root] ibm_is_subnet.subnet2" } ], "nodes": [ { - "apply": "not yet applied", + "apply": { + "instances": [ + { + "attributes": { + "guid": "592261fe-bc09-4a3e-a91d-0ad3a83d3196", + "id": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "resource_controller_url": "https://cloud.ibm.com/internet-svcs/crn%3Av1%3Abluemix%3Apublic%3Ainternet-svcs%3Aglobal%3Aa%2F93cd8038cd994fe29c0646a1ed609032%3A592261fe-bc09-4a3e-a91d-0ad3a83d3196%3A%3A", + "resource_crn": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "resource_group_id": "52f9d499dfdc4db388f4e9094ac93313", + "resource_group_name": "", + "resource_name": "web_domain", + "resource_status": "active", + "service": "internet-svcs", + "status": "active", + "tags": null, + "timeouts": null + }, + "depends_on": [ + "ibm_resource_group.demo_group1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "demo_web_domain", + "provider": "provider.ibm", + "type": "ibm_cis" + }, "cluster": "root", "cost": "no cost available", "definition": { @@ -113,17 +181,17 @@ "standard" ], "resource_group_id": [ - "${ibm_resource_group.web_group.id}" + "${ibm_resource_group.demo_group1.id}" ] }, "group": 20000, - "label": "[root] ibm_cis.web_domain", + "label": "[root] ibm_cis.demo_web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cis.web_domain", + "address": "ibm_cis.demo_web_domain", "change": { "actions": [ "create" @@ -151,7 +219,7 @@ "before": null }, "mode": "managed", - "name": "web_domain", + "name": "demo_web_domain", "provider_name": "ibm", "schema_version": 0, "type": "ibm_cis", @@ -165,38 +233,64 @@ } }, "policy": "no policy available", - "resource_name": "web_domain", - "simple_name": "ibm_cis.web_domain", + "resource_name": "demo_web_domain", + "simple_name": "ibm_cis.demo_web_domain", "svg_id": "node_0", "time": "no time estimation available", "type": "ibm_cis" }, { - "apply": "not yet applied", + "apply": { + "instances": [ + { + "attributes": { + "cis_id": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "domain": "demo.ibm.com", + "id": "2e86accf0abe5b8fa09bfbeb1c66a48f:crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "name_servers": [ + "ns061.name.cloud.ibm.com", + "ns118.name.cloud.ibm.com" + ], + "original_name_servers": [], + "paused": false, + "status": "pending" + }, + "depends_on": [ + "ibm_cis.demo_web_domain" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "demo_web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain" + }, "cluster": "root", "cost": "no cost available", "definition": { "cis_id": [ - "${ibm_cis.web_domain.id}" + "${ibm_cis.demo_web_domain.id}" ], "domain": [ - "${var.domain}" + "demo.ibm.com" ] }, "group": 20000, - "label": "[root] ibm_cis_domain.web_domain", + "label": "[root] ibm_cis_domain.demo_web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cis_domain.web_domain", + "address": "ibm_cis_domain.demo_web_domain", "change": { "actions": [ "create" ], "after": { - "domain": "example.com" + "domain": "demo.ibm.com" }, "after_unknown": { "cis_id": true, @@ -209,57 +303,103 @@ "before": null }, "mode": "managed", - "name": "web_domain", + "name": "demo_web_domain", "provider_name": "ibm", "schema_version": 0, "type": "ibm_cis_domain", "values": { - "domain": "example.com" + "domain": "demo.ibm.com" } }, "policy": "no policy available", - "resource_name": "web_domain", - "simple_name": "ibm_cis_domain.web_domain", + "resource_name": "demo_web_domain", + "simple_name": "ibm_cis_domain.demo_web_domain", "svg_id": "node_1", "time": "no time estimation available", "type": "ibm_cis_domain" }, { - "apply": "not yet applied", + "apply": { + "instances": [ + { + "attributes": { + "always_use_https": "off", + "automatic_https_rewrites": "off", + "brotli": null, + "browser_check": "on", + "certificate_status": null, + "cis_id": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "cname_flattening": "flatten_at_root", + "domain_id": "2e86accf0abe5b8fa09bfbeb1c66a48f:crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "hotlink_protection": "off", + "http2": "on", + "id": "2e86accf0abe5b8fa09bfbeb1c66a48f:crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "image_load_optimization": "off", + "image_size_optimization": "off", + "ip_geolocation": "on", + "ipv6": "on", + "min_tls_version": "1.2", + "opportunistic_encryption": "off", + "origin_error_page_pass_thru": null, + "prefetch_preload": null, + "pseudo_ipv4": null, + "response_buffering": null, + "script_load_optimization": null, + "server_side_exclude": null, + "ssl": "full", + "tls_client_auth": null, + "true_client_ip_header": null, + "waf": "on", + "websockets": null + }, + "depends_on": [ + "ibm_cis.demo_web_domain", + "ibm_cis_domain.demo_web_domain" + ], + "private": "bnVsbA==", + "schema_version": 0, + "status": "tainted" + } + ], + "mode": "managed", + "name": "demo_web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain_settings" + }, "cluster": "root", "cost": "no cost available", "definition": { "cis_id": [ - "${ibm_cis.web_domain.id}" + "${ibm_cis.demo_web_domain.id}" ], "domain_id": [ - "${ibm_cis_domain.web_domain.id}" + "${ibm_cis_domain.demo_web_domain.id}" ], "min_tls_version": [ "1.2" ], "ssl": [ - "flexible" + "full" ], "waf": [ "on" ] }, "group": 20000, - "label": "[root] ibm_cis_domain_settings.web_domain", + "label": "[root] ibm_cis_domain_settings.demo_web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cis_domain_settings.web_domain", + "address": "ibm_cis_domain_settings.demo_web_domain", "change": { "actions": [ "create" ], "after": { "min_tls_version": "1.2", - "ssl": "flexible", + "ssl": "full", "waf": "on" }, "after_unknown": { @@ -292,296 +432,1452 @@ "before": null }, "mode": "managed", - "name": "web_domain", + "name": "demo_web_domain", "provider_name": "ibm", "schema_version": 0, "type": "ibm_cis_domain_settings", "values": { "min_tls_version": "1.2", - "ssl": "flexible", + "ssl": "full", "waf": "on" } }, - "policy": { - "decision": "failed", - "evidences": [ - { - "capsule": "SecurityCapsule", - "control": "", - "policy": "terraform.analysis.ibm.cis", - "rules": [ - { - "result": "failed", - "rule": "cis_ssl_misconfigured", - "severity": 5 - } - ], - "severity": 5 - } - ], - "name": "web_domain", - "type": "ibm_cis_domain_settings" - }, - "resource_name": "web_domain", - "simple_name": "ibm_cis_domain_settings.web_domain", + "policy": "no policy available", + "resource_name": "demo_web_domain", + "simple_name": "ibm_cis_domain_settings.demo_web_domain", "svg_id": "node_2", "time": "no time estimation available", "type": "ibm_cis_domain_settings" }, { - "apply": "not yet applied", + "apply": { + "instances": [], + "mode": "managed", + "name": "bind_service", + "provider": "provider.ibm", + "type": "ibm_container_bind_service" + }, "cluster": "root", "cost": "no cost available", "definition": { - "name": [ - "${var.resource_group}" + "cluster_name_id": [ + "${ibm_container_vpc_cluster.cluster.id}" + ], + "namespace_id": [ + "default" + ], + "role": [ + "Writer" + ], + "service_instance_id": [ + "${element(split(\":\",ibm_resource_instance.cos_instance.id),7)}" ] }, "group": 20000, - "label": "[root] ibm_resource_group.web_group", + "label": "[root] ibm_container_bind_service.bind_service", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_resource_group.web_group", + "address": "ibm_container_bind_service.bind_service", "change": { "actions": [ "create" ], "after": { - "name": "gilad-test-group", - "quota_id": null, + "account_guid": null, + "key": null, + "namespace_id": "default", + "org_guid": null, + "region": null, + "resource_group_id": null, + "role": "Writer", + "service_instance_name_id": null, + "service_instance_space_guid": null, + "space_guid": null, "tags": null }, "after_unknown": { - "default": true, + "cluster_name_id": true, "id": true, - "state": true + "secret_name": true, + "service_instance_id": true, + "service_instance_name": true }, "before": null }, "mode": "managed", - "name": "web_group", + "name": "bind_service", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_resource_group", + "type": "ibm_container_bind_service", "values": { - "name": "gilad-test-group", - "quota_id": null, + "account_guid": null, + "key": null, + "namespace_id": "default", + "org_guid": null, + "region": null, + "resource_group_id": null, + "role": "Writer", + "service_instance_name_id": null, + "service_instance_space_guid": null, + "space_guid": null, "tags": null } }, "policy": "no policy available", - "resource_name": "web_group", - "simple_name": "ibm_resource_group.web_group", + "resource_name": "bind_service", + "simple_name": "ibm_container_bind_service.bind_service", "svg_id": "node_3", "time": "no time estimation available", - "type": "ibm_resource_group" + "type": "ibm_container_bind_service" }, { - "apply": "not yet applied", + "apply": { + "instances": [], + "mode": "managed", + "name": "cluster", + "provider": "provider.ibm", + "type": "ibm_container_vpc_cluster" + }, "cluster": "root", - "cost": "no cost available", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "cluster", + "lineitemtotal": "269.1 USD", + "planID": "", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_container_vpc_cluster", + "title": "Cluster" + }, "definition": { - "value": [ - "http://${var.dns_name}${var.domain}" + "flavor": [ + "bc1-2x8" + ], + "name": [ + "mycluster" + ], + "resource_group_id": [ + "${ibm_resource_group.demo_group1.id}" + ], + "vpc_id": [ + "${ibm_is_vpc.vpc1.id}" + ], + "worker_count": [ + 3 + ], + "zones": [ + { + "name": [ + "us-south-1" + ], + "subnet_id": [ + "${ibm_is_subnet.subnet1.id}" + ] + } ] }, "group": 20000, - "label": "[root] output.web_dns_name", + "label": "[root] ibm_container_vpc_cluster.cluster", "module": "root", "modules": [ "root" ], - "plan": null, + "plan": { + "address": "ibm_container_vpc_cluster.cluster", + "change": { + "actions": [ + "create" + ], + "after": { + "cos_instance_crn": null, + "disable_public_service_endpoint": false, + "entitlement": null, + "flavor": "bc1-2x8", + "name": "mycluster", + "timeouts": null, + "wait_till": "IngressReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1" + } + ] + }, + "after_unknown": { + "albs": true, + "crn": true, + "id": true, + "ingress_hostname": true, + "ingress_secret": true, + "kube_version": true, + "master_status": true, + "master_url": true, + "pod_subnet": true, + "private_service_endpoint_url": true, + "public_service_endpoint_url": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "service_subnet": true, + "state": true, + "tags": true, + "vpc_id": true, + "zones": [ + { + "subnet_id": true + } + ] + }, + "before": null + }, + "mode": "managed", + "name": "cluster", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_container_vpc_cluster", + "values": { + "cos_instance_crn": null, + "disable_public_service_endpoint": false, + "entitlement": null, + "flavor": "bc1-2x8", + "name": "mycluster", + "timeouts": null, + "wait_till": "IngressReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1" + } + ] + } + }, "policy": "no policy available", - "resource_name": "web_dns_name", - "simple_name": "output.web_dns_name", + "resource_name": "cluster", + "simple_name": "ibm_container_vpc_cluster.cluster", "svg_id": "node_4", "time": "no time estimation available", - "type": "output" + "type": "ibm_container_vpc_cluster" }, { - "apply": {}, + "apply": null, "cluster": "root", - "cost": "no cost data available", - "definition": {}, - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": "no policy data available", - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_5", - "time": "no time estimation available", - "type": "provider" - }, - { - "apply": "not yet applied", - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", "cost": "no cost available", "definition": { - "default": [ - "lon02" + "bucket_name": [ + "terraform-demo-bucket-m98hji6hgk89067ga" + ], + "key_protect": [ + "${ibm_kp_key.cos_encrypt.id}" + ], + "region_location": [ + "us-south" + ], + "resource_instance_id": [ + "${ibm_resource_instance.cos_instance.id}" + ], + "storage_class": [ + "standard" ] }, "group": 20000, - "label": "[root] var.datacenter1", + "label": "[root] ibm_cos_bucket.standard-ams03", "module": "root", "modules": [ "root" ], - "plan": null, + "plan": { + "address": "ibm_cos_bucket.standard-ams03", + "change": { + "actions": [ + "create" + ], + "after": { + "activity_tracking": [], + "allowed_ip": null, + "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", + "cross_region_location": null, + "metrics_monitoring": [], + "region_location": "us-south", + "single_site_location": null, + "storage_class": "standard", + "timeouts": null + }, + "after_unknown": { + "activity_tracking": [], + "crn": true, + "id": true, + "key_protect": true, + "metrics_monitoring": [], + "resource_instance_id": true, + "s3_endpoint_private": true, + "s3_endpoint_public": true + }, + "before": null + }, + "mode": "managed", + "name": "standard-ams03", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cos_bucket", + "values": { + "activity_tracking": [], + "allowed_ip": null, + "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", + "cross_region_location": null, + "metrics_monitoring": [], + "region_location": "us-south", + "single_site_location": null, + "storage_class": "standard", + "timeouts": null + } + }, "policy": "no policy available", - "resource_name": "datacenter1", - "simple_name": "var.datacenter1", - "svg_id": "node_6", + "resource_name": "standard-ams03", + "simple_name": "ibm_cos_bucket.standard-ams03", + "svg_id": "node_5", "time": "no time estimation available", - "type": "var" + "type": "ibm_cos_bucket" }, { - "apply": "not yet applied", - "cluster": "cluster[root] meta.count-boundary (EachMode fixup)_var_", + "apply": null, + "cluster": "root", "cost": "no cost available", "definition": { - "default": [ - "ams03" + "roles": [ + [ + "Reader" + ] + ], + "source_service_name": [ + "cloud-object-storage" + ], + "target_service_name": [ + "kms" ] }, "group": 20000, - "label": "[root] var.datacenter2", + "label": "[root] ibm_iam_authorization_policy.policy", "module": "root", "modules": [ "root" ], - "plan": null, + "plan": { + "address": "ibm_iam_authorization_policy.policy", + "change": { + "actions": [ + "create" + ], + "after": { + "roles": [ + "Reader" + ], + "source_resource_group_id": null, + "source_resource_instance_id": null, + "source_resource_type": null, + "source_service_name": "cloud-object-storage", + "target_resource_group_id": null, + "target_resource_instance_id": null, + "target_resource_type": null, + "target_service_name": "kms" + }, + "after_unknown": { + "id": true, + "roles": [ + false + ], + "source_service_account": true, + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_authorization_policy", + "values": { + "roles": [ + "Reader" + ], + "source_resource_group_id": null, + "source_resource_instance_id": null, + "source_resource_type": null, + "source_service_name": "cloud-object-storage", + "target_resource_group_id": null, + "target_resource_instance_id": null, + "target_resource_type": null, + "target_service_name": "kms" + } + }, "policy": "no policy available", - "resource_name": "datacenter2", - "simple_name": "var.datacenter2", - "svg_id": "node_7", + "resource_name": "policy", + "simple_name": "ibm_iam_authorization_policy.policy", + "svg_id": "node_6", "time": "no time estimation available", - "type": "var" + "type": "ibm_iam_authorization_policy" }, { - "apply": "not yet applied", - "cluster": "cluster[root] output.web_dns_name_var_", + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:iam-identity::a/93cd8038cd994fe29c0646a1ed609032::serviceid:ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93", + "description": "", + "id": "ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93", + "name": "demo-cis-dervice", + "tags": null, + "version": "1-9fb5e62df9b334948fbb1ea9ed8d7e6a" + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "serviceID", + "provider": "provider.ibm", + "type": "ibm_iam_service_id" + }, + "cluster": "root", "cost": "no cost available", "definition": { - "default": [ - "" - ], - "description": [ - "DNS name (prefix) for website, including '.', 'www.'" + "name": [ + "demo-cis-dervice" ] }, "group": 20000, - "label": "[root] var.dns_name", + "label": "[root] ibm_iam_service_id.serviceID", "module": "root", "modules": [ "root" ], - "plan": null, + "plan": { + "address": "ibm_iam_service_id.serviceID", + "change": { + "actions": [ + "create" + ], + "after": { + "description": null, + "name": "demo-cis-dervice", + "tags": null + }, + "after_unknown": { + "crn": true, + "id": true, + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "serviceID", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_service_id", + "values": { + "description": null, + "name": "demo-cis-dervice", + "tags": null + } + }, "policy": "no policy available", - "resource_name": "dns_name", - "simple_name": "var.dns_name", - "svg_id": "node_8", + "resource_name": "serviceID", + "simple_name": "ibm_iam_service_id.serviceID", + "svg_id": "node_7", "time": "no time estimation available", - "type": "var" + "type": "ibm_iam_service_id" }, { - "apply": "not yet applied", + "apply": { + "instances": [ + { + "attributes": { + "account_management": false, + "iam_service_id": "ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93", + "id": "ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93/6b5ff8e6-97f4-4181-9e87-ebb436e366e5", + "resources": [ + { + "attributes": null, + "region": "", + "resource": "", + "resource_group_id": "demo_group1", + "resource_instance_id": "", + "resource_type": "", + "service": "cloud-object-storage" + } + ], + "roles": [ + "Writer" + ], + "tags": null, + "version": "1-89feba3c86c28d43368189ad94650252" + }, + "depends_on": [ + "ibm_iam_service_id.serviceID" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "policy", + "provider": "provider.ibm", + "type": "ibm_iam_service_policy" + }, "cluster": "root", "cost": "no cost available", "definition": { - "default": [ - "example.com" + "iam_service_id": [ + "${ibm_iam_service_id.serviceID.id}" + ], + "resources": [ + { + "resource_group_id": [ + "demo_group1" + ], + "service": [ + "cloud-object-storage" + ] + } ], - "description": [ - "DNS Domain for web server" + "roles": [ + [ + "Writer" + ] ] }, "group": 20000, - "label": "[root] var.domain", + "label": "[root] ibm_iam_service_policy.policy", "module": "root", "modules": [ "root" ], - "plan": null, + "plan": { + "address": "ibm_iam_service_policy.policy", + "change": { + "actions": [ + "create" + ], + "after": { + "account_management": false, + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": "demo_group1", + "resource_instance_id": null, + "resource_type": null, + "service": "cloud-object-storage" + } + ], + "roles": [ + "Writer" + ], + "tags": null + }, + "after_unknown": { + "iam_service_id": true, + "id": true, + "resources": [ + {} + ], + "roles": [ + false + ], + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_service_policy", + "values": { + "account_management": false, + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": "demo_group1", + "resource_instance_id": null, + "resource_type": null, + "service": "cloud-object-storage" + } + ], + "roles": [ + "Writer" + ], + "tags": null + } + }, "policy": "no policy available", - "resource_name": "domain", - "simple_name": "var.domain", - "svg_id": "node_9", + "resource_name": "policy", + "simple_name": "ibm_iam_service_policy.policy", + "svg_id": "node_8", "time": "no time estimation available", - "type": "var" + "type": "ibm_iam_service_policy" }, { - "apply": "not yet applied", - "cluster": "cluster[root] ibm_resource_group.web_group_var_", + "apply": null, + "cluster": "root", "cost": "no cost available", "definition": { - "default": [ - "gilad-test-group1" + "ibm_id": [ + "${var.user1}" + ], + "resources": [ + { + "service": [ + "kms" + ] + } ], - "description": [ - "IBM Cloud Resource Group" + "roles": [ + [ + "Viewer", + "Administrator" + ] ] }, "group": 20000, - "label": "[root] var.resource_group", + "label": "[root] ibm_iam_user_policy.policy1", "module": "root", "modules": [ "root" ], - "plan": null, - "policy": "no policy available", - "resource_name": "resource_group", - "simple_name": "var.resource_group", - "svg_id": "node_10", - "time": "no time estimation available", - "type": "var" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": "", + "plan": { + "address": "ibm_iam_user_policy.policy1", + "change": { + "actions": [ + "create" + ], + "after": { + "account_management": false, + "ibm_id": "test1@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer", + "Administrator" + ], + "tags": null + }, + "after_unknown": { + "id": true, + "resources": [ + {} + ], + "roles": [ + false, + false + ], + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_user_policy", + "values": { + "account_management": false, + "ibm_id": "test1@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer", + "Administrator" + ], + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "policy1", + "simple_name": "ibm_iam_user_policy.policy1", + "svg_id": "node_9", + "time": "no time estimation available", + "type": "ibm_iam_user_policy" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "ibm_id": [ + "${var.user2}" + ], + "resources": [ + { + "service": [ + "kms" + ] + } + ], + "roles": [ + [ + "Viewer" + ] + ] + }, "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", + "label": "[root] ibm_iam_user_policy.policy2", "module": "root", "modules": [ "root" ], - "plan": {}, - "policy": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", + "plan": { + "address": "ibm_iam_user_policy.policy2", + "change": { + "actions": [ + "create" + ], + "after": { + "account_management": false, + "ibm_id": "test2@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer" + ], + "tags": null + }, + "after_unknown": { + "id": true, + "resources": [ + {} + ], + "roles": [ + false + ], + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_user_policy", + "values": { + "account_management": false, + "ibm_id": "test2@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer" + ], + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "policy2", + "simple_name": "ibm_iam_user_policy.policy2", + "svg_id": "node_10", + "time": "no time estimation available", + "type": "ibm_iam_user_policy" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "subnet1", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "subnet1", + "lineitemtotal": "0 USD", + "planID": "", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_subnet", + "title": "Subnet" + }, + "definition": { + "name": [ + "mysubnet1" + ], + "total_ipv4_address_count": [ + 256 + ], + "vpc": [ + "${ibm_is_vpc.vpc1.id}" + ], + "zone": [ + "us_south-1" + ] + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet1", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "name": "mysubnet1", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us_south-1" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv4_cidr_block": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "name": "mysubnet1", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us_south-1" + } + }, + "policy": "no policy available", + "resource_name": "subnet1", + "simple_name": "ibm_is_subnet.subnet1", "svg_id": "node_11", - "time": {}, - "type": "meta" + "time": "no time estimation available", + "type": "ibm_is_subnet" }, { - "apply": {}, + "apply": { + "instances": [], + "mode": "managed", + "name": "subnet2", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, "cluster": "root", - "cost": {}, - "definition": {}, + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "subnet2", + "lineitemtotal": "0 USD", + "planID": "", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_subnet", + "title": "Subnet" + }, + "definition": { + "name": [ + "mysubnet2" + ], + "total_ipv4_address_count": [ + 256 + ], + "vpc": [ + "${ibm_is_vpc.vpc1.id}" + ], + "zone": [ + "us-south-2" + ] + }, "group": 20000, - "label": "[root] provider.ibm (close)", + "label": "[root] ibm_is_subnet.subnet2", "module": "root", "modules": [ "root" ], - "plan": {}, - "policy": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", + "plan": { + "address": "ibm_is_subnet.subnet2", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "name": "mysubnet2", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us-south-2" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv4_cidr_block": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "name": "mysubnet2", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us-south-2" + } + }, + "policy": "no policy available", + "resource_name": "subnet2", + "simple_name": "ibm_is_subnet.subnet2", "svg_id": "node_12", - "time": {}, - "type": "provider" + "time": "no time estimation available", + "type": "ibm_is_subnet" + }, + { + "apply": null, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "vpc1", + "lineitemtotal": "0 USD", + "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_vpc", + "title": "VPC" + }, + "definition": { + "name": [ + "myvpc" + ] + }, + "group": 20000, + "label": "[root] ibm_is_vpc.vpc1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.vpc1", + "change": { + "actions": [ + "create" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "myvpc", + "timeouts": null + }, + "after_unknown": { + "crn": true, + "cse_source_addresses": true, + "default_network_acl": true, + "default_security_group": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "subnets": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "myvpc", + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "vpc1", + "simple_name": "ibm_is_vpc.vpc1", + "svg_id": "node_13", + "time": "no time estimation available", + "type": "ibm_is_vpc" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e:key:fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "encrypted_nonce": null, + "force_delete": false, + "id": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e:key:fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "iv_value": "", + "key_id": "fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "key_name": "key-name", + "key_protect_id": "0948eeee-1252-41a8-80b6-b7797b14ad4e", + "payload": "", + "resource_controller_url": "https://cloud.ibm.com/services/kms/crn%3Av1%3Abluemix%3Apublic%3Akms%3Aus-south%3Aa%2F93cd8038cd994fe29c0646a1ed609032%3A0948eeee-1252-41a8-80b6-b7797b14ad4e%3A%3A", + "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e:key:fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "resource_group_name": null, + "resource_name": "key-name", + "resource_status": null, + "standard_key": false, + "timeouts": null + }, + "depends_on": [ + "ibm_resource_instance.kp_instance" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "cos_encrypt", + "provider": "provider.ibm", + "type": "ibm_kp_key" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "key_name": [ + "key-name" + ], + "key_protect_id": [ + "${ibm_resource_instance.kp_instance.guid}" + ], + "standard_key": [ + false + ] + }, + "group": 20000, + "label": "[root] ibm_kp_key.cos_encrypt", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_kp_key.cos_encrypt", + "change": { + "actions": [ + "create" + ], + "after": { + "encrypted_nonce": null, + "force_delete": false, + "iv_value": null, + "key_name": "key-name", + "standard_key": false, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_id": true, + "key_protect_id": true, + "payload": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_encrypt", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_kp_key", + "values": { + "encrypted_nonce": null, + "force_delete": false, + "iv_value": null, + "key_name": "key-name", + "standard_key": false, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "cos_encrypt", + "simple_name": "ibm_kp_key.cos_encrypt", + "svg_id": "node_14", + "time": "no time estimation available", + "type": "ibm_kp_key" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "default": false, + "id": "52f9d499dfdc4db388f4e9094ac93313", + "name": "prod", + "quota_id": null, + "state": "ACTIVE", + "tags": null + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "demo_group1", + "provider": "provider.ibm", + "type": "ibm_resource_group" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "name": [ + "prod" + ] + }, + "group": 20000, + "label": "[root] ibm_resource_group.demo_group1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_group.demo_group1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "prod", + "quota_id": null, + "tags": null + }, + "after_unknown": { + "default": true, + "id": true, + "state": true + }, + "before": null + }, + "mode": "managed", + "name": "demo_group1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_group", + "values": { + "name": "prod", + "quota_id": null, + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "demo_group1", + "simple_name": "ibm_resource_group.demo_group1", + "svg_id": "node_15", + "time": "no time estimation available", + "type": "ibm_resource_group" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/93cd8038cd994fe29c0646a1ed609032:6ffe0e10-9909-4577-b51b-109fc24580f4::", + "guid": "6ffe0e10-9909-4577-b51b-109fc24580f4", + "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/93cd8038cd994fe29c0646a1ed609032:6ffe0e10-9909-4577-b51b-109fc24580f4::", + "location": "global", + "name": "demo_cos_instance", + "parameters": null, + "plan": "standard", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/93cd8038cd994fe29c0646a1ed609032:6ffe0e10-9909-4577-b51b-109fc24580f4::", + "resource_group_id": "52f9d499dfdc4db388f4e9094ac93313", + "resource_group_name": "", + "resource_name": "demo_cos_instance", + "resource_status": "active", + "service": "cloud-object-storage", + "service_endpoints": null, + "status": "active", + "tags": [], + "timeouts": null + }, + "depends_on": [ + "ibm_resource_group.demo_group1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "cos_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "location": [ + "global" + ], + "name": [ + "demo_cos_instance" + ], + "plan": [ + "standard" + ], + "resource_group_id": [ + "${ibm_resource_group.demo_group1.id}" + ], + "service": [ + "cloud-object-storage" + ] + }, + "group": 20000, + "label": "[root] ibm_resource_instance.cos_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.cos_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "global", + "name": "demo_cos_instance", + "parameters": null, + "plan": "standard", + "service": "cloud-object-storage", + "service_endpoints": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "global", + "name": "demo_cos_instance", + "parameters": null, + "plan": "standard", + "service": "cloud-object-storage", + "service_endpoints": null, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "cos_instance", + "simple_name": "ibm_resource_instance.cos_instance", + "svg_id": "node_16", + "time": "no time estimation available", + "type": "ibm_resource_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e::", + "guid": "0948eeee-1252-41a8-80b6-b7797b14ad4e", + "id": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e::", + "location": "us-south", + "name": "demo_KMS_instance", + "parameters": null, + "plan": "tiered-pricing", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e::", + "resource_group_id": "66e101aa10194a809c39227c95aa8e94", + "resource_group_name": "", + "resource_name": "demo_KMS_instance", + "resource_status": "active", + "service": "kms", + "service_endpoints": null, + "status": "active", + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "kp_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "location": [ + "us-south" + ], + "name": [ + "demo_KMS_instance" + ], + "plan": [ + "tiered-pricing" + ], + "service": [ + "kms" + ] + }, + "group": 20000, + "label": "[root] ibm_resource_instance.kp_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.kp_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "us-south", + "name": "demo_KMS_instance", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "kp_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "us-south", + "name": "demo_KMS_instance", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "kp_instance", + "simple_name": "ibm_resource_instance.kp_instance", + "svg_id": "node_17", + "time": "no time estimation available", + "type": "ibm_resource_instance" }, { "apply": {}, @@ -598,11 +1894,11 @@ "policy": {}, "resource_name": "", "simple_name": "root", - "svg_id": "node_13", + "svg_id": "node_18", "time": {}, "type": "" } ], - "totalcost": "", + "totalcost": "269.1 USD", "totaltime": "" } \ No newline at end of file diff --git a/npm/example/demo-2/visualization.svg b/npm/example/demo-2/visualization.svg index eaafa59..d67156c 100644 --- a/npm/example/demo-2/visualization.svg +++ b/npm/example/demo-2/visualization.svg @@ -4,119 +4,941 @@ - - - - + + + + -[root] ibm_cis.web_domain - -ibm_cis - -web_domain - -config - -+ - -apply - -controls              - -N/A                  - -                     - - - -[root] ibm_resource_group.web_group - -ibm_resource_group - -web_group - -config - -+ - -apply - -controls              - -N/A                  - -                     - - +[root] ibm_cis.demo_web_domain + + + +ibm_cis              + + + + +demo_web_domain      + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_resource_group.demo_group1 + + + +ibm_resource_group   + + + + +demo_group1          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group - - +[root] ibm_cis.demo_web_domain->[root] ibm_resource_group.demo_group1 + + - + -[root] ibm_cis_domain.web_domain - -ibm_cis_domain - -web_domain - -config - -+ - -apply - -controls              - -N/A                  - -                     - - +[root] ibm_cis_domain.demo_web_domain + + + +ibm_cis_domain       + + + + +demo_web_domain      + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain - - +[root] ibm_cis_domain.demo_web_domain->[root] ibm_cis.demo_web_domain + + - + -[root] ibm_cis_domain_settings.web_domain - -ibm_cis_domain_settings - -web_domain - -config - -+ - -apply - -controls              - -N/A                  - -                     - - +[root] ibm_cis_domain_settings.demo_web_domain + + + +ibm_cis_domain_settings + + + + +demo_web_domain      + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain - - +[root] ibm_cis_domain_settings.demo_web_domain->[root] ibm_cis_domain.demo_web_domain + + - + + +[root] ibm_container_bind_service.bind_service + + + +ibm_container_bind_service + + + + +bind_service         + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] root - -[root] root +[root] ibm_container_vpc_cluster.cluster + + + +ibm_container_vpc_cluster + + + + +cluster              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +269.1 USD + + + +>_estimate time            + + + + + +>_terraform apply          + + - + -[root] root->[root] ibm_cis_domain_settings.web_domain - - +[root] ibm_container_bind_service.bind_service->[root] ibm_container_vpc_cluster.cluster + + + + + +[root] ibm_resource_instance.cos_instance + + + +ibm_resource_instance + + + + +cos_instance         + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_container_bind_service.bind_service->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_is_subnet.subnet1 + + + +ibm_is_subnet        + + + + +subnet1              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_container_vpc_cluster.cluster->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_container_vpc_cluster.cluster->[root] ibm_resource_group.demo_group1 + + + + + +[root] ibm_cos_bucket.standard-ams03 + + + +ibm_cos_bucket       + + + + +standard-ams03       + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_kp_key.cos_encrypt + + + +ibm_kp_key           + + + + +cos_encrypt          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_cos_bucket.standard-ams03->[root] ibm_kp_key.cos_encrypt + + + + + +[root] ibm_cos_bucket.standard-ams03->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_iam_authorization_policy.policy + + + +ibm_iam_authorization_policy + + + + +policy               + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_service_id.serviceID + + + +ibm_iam_service_id   + + + + +serviceID            + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_service_policy.policy + + + +ibm_iam_service_policy + + + + +policy               + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_service_policy.policy->[root] ibm_iam_service_id.serviceID + + + + + +[root] ibm_iam_user_policy.policy1 + + + +ibm_iam_user_policy + + + + +policy1              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_user_policy.policy2 + + + +ibm_iam_user_policy + + + + +policy2              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_vpc.vpc1 + + + +ibm_is_vpc           + + + + +vpc1                 + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc.vpc1 + + + + + +[root] ibm_is_subnet.subnet2 + + + +ibm_is_subnet        + + + + +subnet2              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc.vpc1 + + + + + +[root] ibm_resource_instance.kp_instance + + + +ibm_resource_instance + + + + +kp_instance          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_kp_key.cos_encrypt->[root] ibm_resource_instance.kp_instance + + + + + +[root] ibm_resource_instance.cos_instance->[root] ibm_resource_group.demo_group1 + + + + + +[root] root + +[root] root + +269.1 USD + + + +[root] root->[root] ibm_cis_domain_settings.demo_web_domain + + + + + +[root] root->[root] ibm_container_bind_service.bind_service + + + + + +[root] root->[root] ibm_cos_bucket.standard-ams03 + + + + + +[root] root->[root] ibm_iam_authorization_policy.policy + + + + + +[root] root->[root] ibm_iam_service_policy.policy + + + + + +[root] root->[root] ibm_iam_user_policy.policy1 + + + + + +[root] root->[root] ibm_iam_user_policy.policy2 + + + + + +[root] root->[root] ibm_is_subnet.subnet2 + + diff --git a/npm/example/demo-3/visualization.json b/npm/example/demo-3/visualization.json index 24d4dbb..d99b40c 100644 --- a/npm/example/demo-3/visualization.json +++ b/npm/example/demo-3/visualization.json @@ -2,846 +2,310 @@ "edges": [ { "edge_type": 1, - "source": "[root] ibm_is_instance.testacc_instance1", + "source": "[root] ibm_cis.web_domain", "svg_id": "edge_0", - "target": "[root] provider.ibm" + "target": "[root] ibm_resource_group.web_group" }, { "edge_type": 1, - "source": "[root] ibm_is_lb.lb", + "source": "[root] ibm_cis_domain.web_domain", "svg_id": "edge_1", - "target": "[root] provider.ibm" + "target": "[root] ibm_cis.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_is_subnet.testacc_subnet", + "source": "[root] ibm_cis_domain_settings.web_domain", "svg_id": "edge_2", - "target": "[root] ibm_is_vpc.testacc_vpc" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_volume.testacc_volume", - "svg_id": "edge_3", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.testacc_vpc", - "svg_id": "edge_4", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway", - "svg_id": "edge_5", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_6", - "target": "[root] ibm_is_instance.testacc_instance1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_7", - "target": "[root] ibm_is_lb.lb" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_8", - "target": "[root] ibm_is_subnet.testacc_subnet" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_9", - "target": "[root] ibm_is_volume.testacc_volume" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_10", - "target": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_11", - "target": "[root] ibm_is_instance.testacc_instance1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_12", - "target": "[root] ibm_is_lb.lb" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_13", - "target": "[root] ibm_is_subnet.testacc_subnet" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_14", - "target": "[root] ibm_is_volume.testacc_volume" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_15", - "target": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_16", - "target": "[root] meta.count-boundary (EachMode fixup)" + "target": "[root] ibm_cis_domain.web_domain" }, { "edge_type": 1, "source": "[root] root", - "svg_id": "edge_17", - "target": "[root] provider.ibm (close)" + "svg_id": "edge_3", + "target": "[root] ibm_cis_domain_settings.web_domain" } ], "nodes": [ { - "apply": null, + "apply": "not yet applied", "cluster": "root", - "cost": { - "depends": [ - { - "cost": 11.807999999999998, - "quantity": 1, - "title": "is.volume" - } - ], - "estimateType": "", - "features": null, - "id": "testacc_instance1", - "lineitemtotal": "74.04 USD", - "planID": "66380d42-d4a9-4627-88fa-7b6631e5bd63", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_instance", - "title": "Virtual Server" - }, + "cost": "no cost available", "definition": { - "image": [ - "7eb4e35b-4257-56f8-d7da-326d85452591" - ], - "keys": [ - [ - "eac87f33-0c00-4da7-aa66-dc2d972148bd" - ] + "location": [ + "global" ], "name": [ - "testinstance" - ], - "primary_network_interface": [ - { - "port_speed": [ - "1000" - ], - "subnet": [ - "70be8eae-134c-436e-a86e-04849f84cb34" - ] - } + "web_domain" ], - "profile": [ - "b-2x8" + "plan": [ + "standard" ], - "vpc": [ - "01eda778-b822-43a2-816d-d30713df5e13" - ], - "zone": [ - "us-south-1" + "resource_group_id": [ + "${ibm_resource_group.web_group.id}" ] }, "group": 20000, - "label": "[root] ibm_is_instance.testacc_instance1", + "label": "[root] ibm_cis.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_instance.testacc_instance1", + "address": "ibm_cis.web_domain", "change": { "actions": [ "create" ], "after": { - "generation": null, - "image": "7eb4e35b-4257-56f8-d7da-326d85452591", - "keys": [ - "eac87f33-0c00-4da7-aa66-dc2d972148bd" - ], - "name": "testinstance", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": 1000, - "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" - } - ], - "profile": "b-2x8", - "timeouts": null, - "user_data": null, - "volumes": null, - "vpc": "01eda778-b822-43a2-816d-d30713df5e13", - "zone": "us-south-1" + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null }, "after_unknown": { - "boot_volume": true, - "gpu": true, + "guid": true, "id": true, - "keys": [ - false - ], - "memory": true, - "network_interfaces": [], - "primary_network_interface": [ - { - "id": true, - "name": true, - "primary_ipv4_address": true, - "security_groups": true - } - ], "resource_controller_url": true, "resource_crn": true, - "resource_group": true, + "resource_group_id": true, "resource_group_name": true, "resource_name": true, "resource_status": true, - "status": true, - "tags": true, - "vcpu": true, - "volume_attachments": true + "service": true, + "status": true }, "before": null }, "mode": "managed", - "name": "testacc_instance1", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_instance", + "type": "ibm_cis", "values": { - "generation": null, - "image": "7eb4e35b-4257-56f8-d7da-326d85452591", - "keys": [ - "eac87f33-0c00-4da7-aa66-dc2d972148bd" - ], - "name": "testinstance", - "network_interfaces": [], - "primary_network_interface": [ - { - "port_speed": 1000, - "subnet": "70be8eae-134c-436e-a86e-04849f84cb34" - } - ], - "profile": "b-2x8", - "timeouts": null, - "user_data": null, - "volumes": null, - "vpc": "01eda778-b822-43a2-816d-d30713df5e13", - "zone": "us-south-1" + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null } }, "policy": "no policy available", - "resource_name": "testacc_instance1", - "simple_name": "ibm_is_instance.testacc_instance1", + "resource_name": "web_domain", + "simple_name": "ibm_cis.web_domain", "svg_id": "node_0", "time": "no time estimation available", - "type": "ibm_is_instance" + "type": "ibm_cis" }, { - "apply": null, + "apply": "not yet applied", "cluster": "root", - "cost": { - "depends": [ - { - "cost": 0, - "quantity": 1, - "title": "is.floating-ip" - } - ], - "estimateType": "", - "features": null, - "id": "lb", - "lineitemtotal": "0 USD", - "planID": "6092eed9-b0a4-4933-86dd-5532b22274dc", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_lb", - "title": "Load Balancer" - }, + "cost": "no cost available", "definition": { - "name": [ - "loadbalancer1" + "cis_id": [ + "${ibm_cis.web_domain.id}" ], - "subnets": [ - [ - "04813493-15d6-4150-9948-6cc646cb67f2" - ] + "domain": [ + "${var.domain}" ] }, "group": 20000, - "label": "[root] ibm_is_lb.lb", + "label": "[root] ibm_cis_domain.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_lb.lb", + "address": "ibm_cis_domain.web_domain", "change": { "actions": [ "create" ], "after": { - "name": "loadbalancer1", - "subnets": [ - "04813493-15d6-4150-9948-6cc646cb67f2" - ], - "timeouts": null, - "type": "public" + "domain": "example.com" }, "after_unknown": { - "hostname": true, + "cis_id": true, "id": true, - "operating_status": true, - "private_ips": true, - "public_ips": true, - "resource_controller_url": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "status": true, - "subnets": [ - false - ], - "tags": true + "name_servers": true, + "original_name_servers": true, + "paused": true, + "status": true }, "before": null }, "mode": "managed", - "name": "lb", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_lb", + "type": "ibm_cis_domain", "values": { - "name": "loadbalancer1", - "subnets": [ - "04813493-15d6-4150-9948-6cc646cb67f2" - ], - "timeouts": null, - "type": "public" + "domain": "example.com" } }, "policy": "no policy available", - "resource_name": "lb", - "simple_name": "ibm_is_lb.lb", + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain.web_domain", "svg_id": "node_1", "time": "no time estimation available", - "type": "ibm_is_lb" + "type": "ibm_cis_domain" }, { - "apply": { - "instances": [ - { - "attributes": { - "available_ipv4_address_count": null, - "id": "d4f8ab01-34b3-4f61-84d7-31b02db999a6", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "ipv6_cidr_block": null, - "name": "testsubnet", - "network_acl": "ae34aaf3-67cd-4ea9-9691-3e0b884ed287", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::subnet:d4f8ab01-34b3-4f61-84d7-31b02db999a6", - "resource_group": null, - "resource_group_name": null, - "resource_name": "testsubnet", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "c1a6b21d-3493-4087-a691-90b631428a13", - "zone": "us-south-1" - }, - "depends_on": [ - "ibm_is_vpc.testacc_vpc" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "testacc_subnet", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, + "apply": "not yet applied", "cluster": "root", "cost": "no cost available", "definition": { - "ipv4_cidr_block": [ - "10.240.0.0/24" + "cis_id": [ + "${ibm_cis.web_domain.id}" ], - "name": [ - "testsubnet" - ], - "vpc": [ - "${ibm_is_vpc.testacc_vpc.id}" - ], - "zone": [ - "us-south-1" - ] - }, - "group": 20000, - "label": "[root] ibm_is_subnet.testacc_subnet", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.testacc_subnet", - "change": { - "actions": [ - "create" - ], - "after": { - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "name": "testsubnet", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-1" - }, - "after_unknown": { - "available_ipv4_address_count": true, - "id": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "total_ipv4_address_count": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "testacc_subnet", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.0.0/24", - "name": "testsubnet", - "public_gateway": null, - "timeouts": null, - "zone": "us-south-1" - } - }, - "policy": "no policy available", - "resource_name": "testacc_subnet", - "simple_name": "ibm_is_subnet.testacc_subnet", - "svg_id": "node_2", - "time": "no time estimation available", - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "capacity": 100, - "crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::volume:90537bce-3c80-4c8e-bb90-592e8b15244c", - "encryption_key": null, - "id": "90537bce-3c80-4c8e-bb90-592e8b15244c", - "iops": 3000, - "name": "testvolume", - "profile": "10iops-tier", - "resource_controller_url": "https://cloud.ibm.com/vpc/storage/storageVolumes", - "resource_crn": "crn:v1:bluemix:public:is:us-south-1:a/faf6addbf6bf476896f5e342a5bdd702::volume:90537bce-3c80-4c8e-bb90-592e8b15244c", - "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_name": "testvolume", - "resource_status": "available", - "status": "available", - "tags": [], - "timeouts": null, - "zone": "us-south-1" - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } + "domain_id": [ + "${ibm_cis_domain.web_domain.id}" ], - "mode": "managed", - "name": "testacc_volume", - "provider": "provider.ibm", - "type": "ibm_is_volume" - }, - "cluster": "root", - "cost": { - "depends": null, - "estimateType": "", - "features": null, - "id": "testacc_volume", - "lineitemtotal": "0 USD", - "planID": "64841f3b-3a6f-4893-831a-54a6abaf1dd7", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_volume", - "title": "Storage Volume" - }, - "definition": { - "name": [ - "testvolume" + "min_tls_version": [ + "1.2" ], - "profile": [ - "10iops-tier" + "ssl": [ + "flexible" ], - "zone": [ - "us-south-1" + "waf": [ + "on" ] }, "group": 20000, - "label": "[root] ibm_is_volume.testacc_volume", + "label": "[root] ibm_cis_domain_settings.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_volume.testacc_volume", + "address": "ibm_cis_domain_settings.web_domain", "change": { "actions": [ "create" ], "after": { - "capacity": 100, - "name": "testvolume", - "profile": "10iops-tier", - "timeouts": null, - "zone": "us-south-1" + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" }, "after_unknown": { - "crn": true, - "encryption_key": true, + "always_use_https": true, + "automatic_https_rewrites": true, + "brotli": true, + "browser_check": true, + "certificate_status": true, + "cis_id": true, + "cname_flattening": true, + "domain_id": true, + "hotlink_protection": true, + "http2": true, "id": true, - "iops": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "tags": true + "image_load_optimization": true, + "image_size_optimization": true, + "ip_geolocation": true, + "ipv6": true, + "opportunistic_encryption": true, + "origin_error_page_pass_thru": true, + "prefetch_preload": true, + "pseudo_ipv4": true, + "response_buffering": true, + "script_load_optimization": true, + "server_side_exclude": true, + "tls_client_auth": true, + "true_client_ip_header": true, + "websockets": true }, "before": null }, "mode": "managed", - "name": "testacc_volume", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_volume", + "type": "ibm_cis_domain_settings", "values": { - "capacity": 100, - "name": "testvolume", - "profile": "10iops-tier", - "timeouts": null, - "zone": "us-south-1" + "min_tls_version": "1.2", + "ssl": "flexible", + "waf": "on" } }, - "policy": "no policy available", - "resource_name": "testacc_volume", - "simple_name": "ibm_is_volume.testacc_volume", - "svg_id": "node_3", - "time": "no time estimation available", - "type": "ibm_is_volume" - }, - { - "apply": { - "instances": [ + "policy": { + "decision": "failed", + "evidences": [ { - "attributes": { - "address_prefix_management": "auto", - "classic_access": false, - "crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:c1a6b21d-3493-4087-a691-90b631428a13", - "cse_source_addresses": [ - { - "address": "10.249.128.216", - "zone_name": "us-south-3" - }, - { - "address": "10.249.112.158", - "zone_name": "us-south-1" - }, - { - "address": "10.249.120.144", - "zone_name": "us-south-2" - } - ], - "default_network_acl": "ae34aaf3-67cd-4ea9-9691-3e0b884ed287", - "default_security_group": "2d364f0a-a870-42c3-a554-000003125704", - "id": "c1a6b21d-3493-4087-a691-90b631428a13", - "is_default": null, - "name": "testvpc", - "resource_controller_url": "https://cloud.ibm.com/vpc/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:c1a6b21d-3493-4087-a691-90b631428a13", - "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_name": "testvpc", - "resource_status": "available", - "status": "available", - "subnets": [], - "tags": [], - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 + "capsule": "SecurityCapsule", + "control": "", + "policy": "terraform.analysis.ibm.cis", + "rules": [ + { + "result": "failed", + "rule": "cis_ssl_misconfigured", + "severity": 5 + } + ], + "severity": 5 } ], - "mode": "managed", - "name": "testacc_vpc", - "provider": "provider.ibm", - "type": "ibm_is_vpc" - }, - "cluster": "root", - "cost": { - "depends": null, - "estimateType": "", - "features": null, - "id": "testacc_vpc", - "lineitemtotal": "0 USD", - "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_vpc", - "title": "VPC" - }, - "definition": { - "name": [ - "testvpc" - ] - }, - "group": 20000, - "label": "[root] ibm_is_vpc.testacc_vpc", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc.testacc_vpc", - "change": { - "actions": [ - "create" - ], - "after": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "testvpc", - "timeouts": null - }, - "after_unknown": { - "crn": true, - "cse_source_addresses": true, - "default_network_acl": true, - "default_security_group": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "subnets": true, - "tags": true - }, - "before": null - }, - "mode": "managed", - "name": "testacc_vpc", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc", - "values": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "testvpc", - "timeouts": null - } + "name": "web_domain", + "type": "ibm_cis_domain_settings" }, - "policy": "no policy available", - "resource_name": "testacc_vpc", - "simple_name": "ibm_is_vpc.testacc_vpc", - "svg_id": "node_4", + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain_settings.web_domain", + "svg_id": "node_2", "time": "no time estimation available", - "type": "ibm_is_vpc" + "type": "ibm_cis_domain_settings" }, { - "apply": null, + "apply": "not yet applied", "cluster": "root", - "cost": { - "depends": [ - { - "cost": 1, - "quantity": 1, - "title": "is.floating-ip" - } - ], - "estimateType": "", - "features": null, - "id": "testacc_vpn_gateway", - "lineitemtotal": "1 USD", - "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_vpn_gateway", - "title": "VPN Gateway" - }, + "cost": "no cost available", "definition": { "name": [ - "test" - ], - "subnet": [ - "a4ce411d-e118-4802-95ad-525e6ea0cfc9" + "${var.resource_group}" ] }, "group": 20000, - "label": "[root] ibm_is_vpn_gateway.testacc_vpn_gateway", + "label": "[root] ibm_resource_group.web_group", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_is_vpn_gateway.testacc_vpn_gateway", + "address": "ibm_resource_group.web_group", "change": { "actions": [ "create" ], "after": { - "name": "test", - "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9", - "timeouts": null + "name": "gilad-test-group", + "quota_id": null, + "tags": null }, "after_unknown": { + "default": true, "id": true, - "public_ip_address": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "tags": true + "state": true }, "before": null }, "mode": "managed", - "name": "testacc_vpn_gateway", + "name": "web_group", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_is_vpn_gateway", + "type": "ibm_resource_group", "values": { - "name": "test", - "subnet": "a4ce411d-e118-4802-95ad-525e6ea0cfc9", - "timeouts": null + "name": "gilad-test-group", + "quota_id": null, + "tags": null } }, "policy": "no policy available", - "resource_name": "testacc_vpn_gateway", - "simple_name": "ibm_is_vpn_gateway.testacc_vpn_gateway", - "svg_id": "node_5", - "time": "no time estimation available", - "type": "ibm_is_vpn_gateway" - }, - { - "apply": {}, - "cluster": "root", - "cost": "no cost data available", - "definition": { - "generation": [ - 1 - ], - "ibmcloud_api_key": [ - "42fET57nnadurKXzXAedFLOhGqETfIGYxOmQXkFgkJV9" - ] - }, - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": "no policy data available", - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_6", + "resource_name": "web_group", + "simple_name": "ibm_resource_group.web_group", + "svg_id": "node_3", "time": "no time estimation available", - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_7", - "time": {}, - "type": "meta" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": { - "generation": [ - 1 - ], - "ibmcloud_api_key": [ - "42fET57nnadurKXzXAedFLOhGqETfIGYxOmQXkFgkJV9" - ] - }, - "group": 20000, - "label": "[root] provider.ibm (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", - "svg_id": "node_8", - "time": {}, - "type": "provider" + "type": "ibm_resource_group" }, { "apply": {}, @@ -858,11 +322,11 @@ "policy": {}, "resource_name": "", "simple_name": "root", - "svg_id": "node_9", + "svg_id": "node_4", "time": {}, "type": "" } ], - "totalcost": "150.07 USD", + "totalcost": "", "totaltime": "" } \ No newline at end of file diff --git a/npm/example/demo-3/visualization.svg b/npm/example/demo-3/visualization.svg index 37c4995..6ef64ce 100644 --- a/npm/example/demo-3/visualization.svg +++ b/npm/example/demo-3/visualization.svg @@ -4,173 +4,214 @@ - - - - + + + + -[root] ibm_is_instance.testacc_instance1 - -ibm_is_instance - -testacc_instance1 - -config - -+ - -apply - -controls              - -74.04 USD            - -                     +[root] ibm_cis.web_domain + + + +ibm_cis              + + + + +web_domain           + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + - - -[root] ibm_is_lb.lb - -ibm_is_lb - -lb - -config - -+ - -apply - -controls              - -0 USD                - -                     + + +[root] ibm_resource_group.web_group + + + +ibm_resource_group   + + + + +web_group            + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + - - -[root] ibm_is_subnet.testacc_subnet - -ibm_is_subnet - -testacc_subnet - -config - -+ - -apply - -controls              - -N/A                  - -                     + + +[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group + + - - -[root] ibm_is_vpc.testacc_vpc - -ibm_is_vpc - -testacc_vpc - -config - -+ - -apply - -controls              - -0 USD                - -                     + + +[root] ibm_cis_domain.web_domain + + + +ibm_cis_domain       + + + + +web_domain           + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + - - -[root] ibm_is_subnet.testacc_subnet->[root] ibm_is_vpc.testacc_vpc - - + + +[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain + + - - -[root] ibm_is_volume.testacc_volume - -ibm_is_volume - -testacc_volume - -config - -+ - -apply - -controls              - -0 USD                - -                     + + +[root] ibm_cis_domain_settings.web_domain + + + +ibm_cis_domain_settings + + + + +web_domain           + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + - - -[root] ibm_is_vpn_gateway.testacc_vpn_gateway - -ibm_is_vpn_gateway - -testacc_vpn_gateway - -config - -+ - -apply - -controls              - -1 USD                - -                     + + +[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain + + - + [root] root - -[root] root - -150.07 USD - - - -[root] root->[root] ibm_is_instance.testacc_instance1 - - + +[root] root - - -[root] root->[root] ibm_is_lb.lb - - - - + -[root] root->[root] ibm_is_subnet.testacc_subnet - - - - - -[root] root->[root] ibm_is_volume.testacc_volume - - - - - -[root] root->[root] ibm_is_vpn_gateway.testacc_vpn_gateway - - +[root] root->[root] ibm_cis_domain_settings.web_domain + + diff --git a/npm/example/demo-4/visualization.json b/npm/example/demo-4/visualization.json index 5fe2ad6..d99b40c 100644 --- a/npm/example/demo-4/visualization.json +++ b/npm/example/demo-4/visualization.json @@ -2,286 +2,32 @@ "edges": [ { "edge_type": 1, - "source": "[root] ibm_cis.demo_web_domain", + "source": "[root] ibm_cis.web_domain", "svg_id": "edge_0", - "target": "[root] ibm_resource_group.demo_group1" + "target": "[root] ibm_resource_group.web_group" }, { "edge_type": 1, - "source": "[root] ibm_cis_domain.demo_web_domain", + "source": "[root] ibm_cis_domain.web_domain", "svg_id": "edge_1", - "target": "[root] ibm_cis.demo_web_domain" + "target": "[root] ibm_cis.web_domain" }, { "edge_type": 1, - "source": "[root] ibm_cis_domain_settings.demo_web_domain", + "source": "[root] ibm_cis_domain_settings.web_domain", "svg_id": "edge_2", - "target": "[root] ibm_cis_domain.demo_web_domain" - }, - { - "edge_type": 1, - "source": "[root] ibm_container_bind_service.bind_service", - "svg_id": "edge_3", - "target": "[root] ibm_container_vpc_cluster.cluster" - }, - { - "edge_type": 1, - "source": "[root] ibm_container_bind_service.bind_service", - "svg_id": "edge_4", - "target": "[root] ibm_resource_instance.cos_instance" - }, - { - "edge_type": 1, - "source": "[root] ibm_container_vpc_cluster.cluster", - "svg_id": "edge_5", - "target": "[root] ibm_is_subnet.subnet1" - }, - { - "edge_type": 1, - "source": "[root] ibm_container_vpc_cluster.cluster", - "svg_id": "edge_6", - "target": "[root] ibm_resource_group.demo_group1" - }, - { - "edge_type": 1, - "source": "[root] ibm_cos_bucket.standard-ams03", - "svg_id": "edge_7", - "target": "[root] ibm_kp_key.cos_encrypt" - }, - { - "edge_type": 1, - "source": "[root] ibm_cos_bucket.standard-ams03", - "svg_id": "edge_8", - "target": "[root] ibm_resource_instance.cos_instance" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_authorization_policy.policy", - "svg_id": "edge_9", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_service_id.serviceID", - "svg_id": "edge_10", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_service_policy.policy", - "svg_id": "edge_11", - "target": "[root] ibm_iam_service_id.serviceID" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_user_policy.policy1", - "svg_id": "edge_12", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_user_policy.policy1", - "svg_id": "edge_13", - "target": "[root] var.user1" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_user_policy.policy2", - "svg_id": "edge_14", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_iam_user_policy.policy2", - "svg_id": "edge_15", - "target": "[root] var.user2" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet1", - "svg_id": "edge_16", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_subnet.subnet2", - "svg_id": "edge_17", - "target": "[root] ibm_is_vpc.vpc1" - }, - { - "edge_type": 1, - "source": "[root] ibm_is_vpc.vpc1", - "svg_id": "edge_18", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_kp_key.cos_encrypt", - "svg_id": "edge_19", - "target": "[root] ibm_resource_instance.kp_instance" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_group.demo_group1", - "svg_id": "edge_20", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_instance.cos_instance", - "svg_id": "edge_21", - "target": "[root] ibm_resource_group.demo_group1" - }, - { - "edge_type": 1, - "source": "[root] ibm_resource_instance.kp_instance", - "svg_id": "edge_22", - "target": "[root] provider.ibm" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_23", - "target": "[root] ibm_cis_domain_settings.demo_web_domain" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_24", - "target": "[root] ibm_container_bind_service.bind_service" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_25", - "target": "[root] ibm_cos_bucket.standard-ams03" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_26", - "target": "[root] ibm_iam_authorization_policy.policy" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_27", - "target": "[root] ibm_iam_service_policy.policy" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_28", - "target": "[root] ibm_iam_user_policy.policy1" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_29", - "target": "[root] ibm_iam_user_policy.policy2" - }, - { - "edge_type": 1, - "source": "[root] meta.count-boundary (EachMode fixup)", - "svg_id": "edge_30", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_31", - "target": "[root] ibm_cis_domain_settings.demo_web_domain" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_32", - "target": "[root] ibm_container_bind_service.bind_service" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_33", - "target": "[root] ibm_cos_bucket.standard-ams03" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_34", - "target": "[root] ibm_iam_authorization_policy.policy" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_35", - "target": "[root] ibm_iam_service_policy.policy" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_36", - "target": "[root] ibm_iam_user_policy.policy1" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_37", - "target": "[root] ibm_iam_user_policy.policy2" - }, - { - "edge_type": 1, - "source": "[root] provider.ibm (close)", - "svg_id": "edge_38", - "target": "[root] ibm_is_subnet.subnet2" - }, - { - "edge_type": 1, - "source": "[root] root", - "svg_id": "edge_39", - "target": "[root] meta.count-boundary (EachMode fixup)" + "target": "[root] ibm_cis_domain.web_domain" }, { "edge_type": 1, "source": "[root] root", - "svg_id": "edge_40", - "target": "[root] provider.ibm (close)" + "svg_id": "edge_3", + "target": "[root] ibm_cis_domain_settings.web_domain" } ], "nodes": [ { - "apply": { - "instances": [ - { - "attributes": { - "guid": "1897888a-7d9b-457d-961c-c5563cc52e57", - "id": "crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "location": "global", - "name": "web_domain", - "parameters": null, - "plan": "standard", - "resource_controller_url": "https://cloud.ibm.com/internet-svcs/crn%3Av1%3Abluemix%3Apublic%3Ainternet-svcs%3Aglobal%3Aa%2Ffaf6addbf6bf476896f5e342a5bdd702%3A1897888a-7d9b-457d-961c-c5563cc52e57%3A%3A", - "resource_crn": "crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "resource_group_id": "fcf8e40cc42840eab1358d8d1ba53087", - "resource_group_name": "", - "resource_name": "web_domain", - "resource_status": "active", - "service": "internet-svcs", - "status": "active", - "tags": null, - "timeouts": null - }, - "depends_on": [ - "ibm_resource_group.demo_group1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "demo_web_domain", - "provider": "provider.ibm", - "type": "ibm_cis" - }, + "apply": "not yet applied", "cluster": "root", "cost": "no cost available", "definition": { @@ -295,17 +41,17 @@ "standard" ], "resource_group_id": [ - "${ibm_resource_group.demo_group1.id}" + "${ibm_resource_group.web_group.id}" ] }, "group": 20000, - "label": "[root] ibm_cis.demo_web_domain", + "label": "[root] ibm_cis.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cis.demo_web_domain", + "address": "ibm_cis.web_domain", "change": { "actions": [ "create" @@ -333,7 +79,7 @@ "before": null }, "mode": "managed", - "name": "demo_web_domain", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, "type": "ibm_cis", @@ -347,74 +93,38 @@ } }, "policy": "no policy available", - "resource_name": "demo_web_domain", - "simple_name": "ibm_cis.demo_web_domain", + "resource_name": "web_domain", + "simple_name": "ibm_cis.web_domain", "svg_id": "node_0", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:43", - "TimeEstimation": "00:04:00", - "id": "5fcf5dd2b1d825100b8be13c", - "name": "ibm_cis", - "region": "us-south" - }, + "time": "no time estimation available", "type": "ibm_cis" }, { - "apply": { - "instances": [ - { - "attributes": { - "cis_id": "crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "domain": "demo.ibm.com", - "id": "2585a20c6c41f95224478a9c64db7a10:crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "name_servers": [ - "ns070.name.cloud.ibm.com", - "ns163.name.cloud.ibm.com" - ], - "original_name_servers": [], - "paused": false, - "status": "pending" - }, - "depends_on": [ - "ibm_cis.demo_web_domain" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "demo_web_domain", - "provider": "provider.ibm", - "type": "ibm_cis_domain" - }, + "apply": "not yet applied", "cluster": "root", "cost": "no cost available", "definition": { "cis_id": [ - "${ibm_cis.demo_web_domain.id}" + "${ibm_cis.web_domain.id}" ], "domain": [ - "demo.ibm.com" + "${var.domain}" ] }, "group": 20000, - "label": "[root] ibm_cis_domain.demo_web_domain", + "label": "[root] ibm_cis_domain.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cis_domain.demo_web_domain", + "address": "ibm_cis_domain.web_domain", "change": { "actions": [ "create" ], "after": { - "domain": "demo.ibm.com" + "domain": "example.com" }, "after_unknown": { "cis_id": true, @@ -427,113 +137,57 @@ "before": null }, "mode": "managed", - "name": "demo_web_domain", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, "type": "ibm_cis_domain", "values": { - "domain": "demo.ibm.com" + "domain": "example.com" } }, "policy": "no policy available", - "resource_name": "demo_web_domain", - "simple_name": "ibm_cis_domain.demo_web_domain", + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain.web_domain", "svg_id": "node_1", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:44", - "TimeEstimation": "00:04:01", - "id": "5fcf5dd2b1d825100b8be143", - "name": "ibm_cis_domain", - "region": "us-south" - }, + "time": "no time estimation available", "type": "ibm_cis_domain" }, { - "apply": { - "instances": [ - { - "attributes": { - "always_use_https": "off", - "automatic_https_rewrites": "off", - "brotli": null, - "browser_check": "on", - "certificate_status": null, - "cis_id": "crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "cname_flattening": "flatten_at_root", - "domain_id": "2585a20c6c41f95224478a9c64db7a10:crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "hotlink_protection": "off", - "http2": "on", - "id": "2585a20c6c41f95224478a9c64db7a10:crn:v1:bluemix:public:internet-svcs:global:a/faf6addbf6bf476896f5e342a5bdd702:1897888a-7d9b-457d-961c-c5563cc52e57::", - "image_load_optimization": "off", - "image_size_optimization": "off", - "ip_geolocation": "on", - "ipv6": "on", - "min_tls_version": "1.2", - "opportunistic_encryption": "off", - "origin_error_page_pass_thru": null, - "prefetch_preload": null, - "pseudo_ipv4": null, - "response_buffering": null, - "script_load_optimization": null, - "server_side_exclude": null, - "ssl": "full", - "tls_client_auth": null, - "true_client_ip_header": null, - "waf": "on", - "websockets": null - }, - "depends_on": [ - "ibm_cis.demo_web_domain", - "ibm_cis_domain.demo_web_domain" - ], - "private": "bnVsbA==", - "schema_version": 0, - "status": "tainted" - } - ], - "mode": "managed", - "name": "demo_web_domain", - "provider": "provider.ibm", - "type": "ibm_cis_domain_settings" - }, + "apply": "not yet applied", "cluster": "root", "cost": "no cost available", "definition": { "cis_id": [ - "${ibm_cis.demo_web_domain.id}" + "${ibm_cis.web_domain.id}" ], "domain_id": [ - "${ibm_cis_domain.demo_web_domain.id}" + "${ibm_cis_domain.web_domain.id}" ], "min_tls_version": [ "1.2" ], "ssl": [ - "full" + "flexible" ], "waf": [ "on" ] }, "group": 20000, - "label": "[root] ibm_cis_domain_settings.demo_web_domain", + "label": "[root] ibm_cis_domain_settings.web_domain", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_cis_domain_settings.demo_web_domain", + "address": "ibm_cis_domain_settings.web_domain", "change": { "actions": [ "create" ], "after": { "min_tls_version": "1.2", - "ssl": "full", + "ssl": "flexible", "waf": "on" }, "after_unknown": { @@ -566,1871 +220,113 @@ "before": null }, "mode": "managed", - "name": "demo_web_domain", + "name": "web_domain", "provider_name": "ibm", "schema_version": 0, "type": "ibm_cis_domain_settings", "values": { "min_tls_version": "1.2", - "ssl": "full", + "ssl": "flexible", "waf": "on" } }, - "policy": "no policy available", - "resource_name": "demo_web_domain", - "simple_name": "ibm_cis_domain_settings.demo_web_domain", - "svg_id": "node_2", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:45", - "TimeEstimation": "00:04:02", - "id": "5fcf5dd2b1d825100b8be14a", - "name": "ibm_cis_domain_settings", - "region": "us-south" + "policy": { + "decision": "failed", + "evidences": [ + { + "capsule": "SecurityCapsule", + "control": "", + "policy": "terraform.analysis.ibm.cis", + "rules": [ + { + "result": "failed", + "rule": "cis_ssl_misconfigured", + "severity": 5 + } + ], + "severity": 5 + } + ], + "name": "web_domain", + "type": "ibm_cis_domain_settings" }, + "resource_name": "web_domain", + "simple_name": "ibm_cis_domain_settings.web_domain", + "svg_id": "node_2", + "time": "no time estimation available", "type": "ibm_cis_domain_settings" }, { - "apply": { - "instances": [], - "mode": "managed", - "name": "bind_service", - "provider": "provider.ibm", - "type": "ibm_container_bind_service" - }, + "apply": "not yet applied", "cluster": "root", "cost": "no cost available", "definition": { - "cluster_name_id": [ - "${ibm_container_vpc_cluster.cluster.id}" - ], - "namespace_id": [ - "default" - ], - "role": [ - "Writer" - ], - "service_instance_id": [ - "${element(split(\":\",ibm_resource_instance.cos_instance.id),7)}" + "name": [ + "${var.resource_group}" ] }, "group": 20000, - "label": "[root] ibm_container_bind_service.bind_service", + "label": "[root] ibm_resource_group.web_group", "module": "root", "modules": [ "root" ], "plan": { - "address": "ibm_container_bind_service.bind_service", + "address": "ibm_resource_group.web_group", "change": { "actions": [ "create" ], "after": { - "account_guid": null, - "key": null, - "namespace_id": "default", - "org_guid": null, - "region": null, - "resource_group_id": null, - "role": "Writer", - "service_instance_name_id": null, - "service_instance_space_guid": null, - "space_guid": null, + "name": "gilad-test-group", + "quota_id": null, "tags": null }, "after_unknown": { - "cluster_name_id": true, + "default": true, "id": true, - "secret_name": true, - "service_instance_id": true, - "service_instance_name": true + "state": true }, "before": null }, "mode": "managed", - "name": "bind_service", + "name": "web_group", "provider_name": "ibm", "schema_version": 0, - "type": "ibm_container_bind_service", + "type": "ibm_resource_group", "values": { - "account_guid": null, - "key": null, - "namespace_id": "default", - "org_guid": null, - "region": null, - "resource_group_id": null, - "role": "Writer", - "service_instance_name_id": null, - "service_instance_space_guid": null, - "space_guid": null, + "name": "gilad-test-group", + "quota_id": null, "tags": null } }, "policy": "no policy available", - "resource_name": "bind_service", - "simple_name": "ibm_container_bind_service.bind_service", + "resource_name": "web_group", + "simple_name": "ibm_resource_group.web_group", "svg_id": "node_3", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:01", - "TimeEstimation": "00:05:00", - "id": "5fcf5dd2b1d825100b8be0fd", - "name": "ibm_container_bind_service", - "region": "us-south" - }, - "type": "ibm_container_bind_service" + "time": "no time estimation available", + "type": "ibm_resource_group" }, { - "apply": { - "instances": [], - "mode": "managed", - "name": "cluster", - "provider": "provider.ibm", - "type": "ibm_container_vpc_cluster" - }, + "apply": {}, "cluster": "root", - "cost": { - "depends": null, - "estimateType": "", - "features": null, - "id": "cluster", - "lineitemtotal": "269.1 USD", - "planID": "", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_container_vpc_cluster", - "title": "Cluster" - }, - "definition": { - "flavor": [ - "bc1-2x8" - ], - "name": [ - "mycluster" - ], - "resource_group_id": [ - "${ibm_resource_group.demo_group1.id}" - ], - "vpc_id": [ - "${ibm_is_vpc.vpc1.id}" - ], - "worker_count": [ - 3 - ], - "zones": [ - { - "name": [ - "us-south-1" - ], - "subnet_id": [ - "${ibm_is_subnet.subnet1.id}" - ] - } - ] - }, + "cost": {}, + "definition": "", "group": 20000, - "label": "[root] ibm_container_vpc_cluster.cluster", + "label": "[root] root", "module": "root", "modules": [ "root" ], - "plan": { - "address": "ibm_container_vpc_cluster.cluster", - "change": { - "actions": [ - "create" - ], - "after": { - "cos_instance_crn": null, - "disable_public_service_endpoint": false, - "entitlement": null, - "flavor": "bc1-2x8", - "name": "mycluster", - "timeouts": null, - "wait_till": "IngressReady", - "worker_count": 3, - "zones": [ - { - "name": "us-south-1" - } - ] - }, - "after_unknown": { - "albs": true, - "crn": true, - "id": true, - "ingress_hostname": true, - "ingress_secret": true, - "kube_version": true, - "master_status": true, - "master_url": true, - "pod_subnet": true, - "private_service_endpoint_url": true, - "public_service_endpoint_url": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_id": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "service_subnet": true, - "state": true, - "tags": true, - "vpc_id": true, - "zones": [ - { - "subnet_id": true - } - ] - }, - "before": null - }, - "mode": "managed", - "name": "cluster", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_container_vpc_cluster", - "values": { - "cos_instance_crn": null, - "disable_public_service_endpoint": false, - "entitlement": null, - "flavor": "bc1-2x8", - "name": "mycluster", - "timeouts": null, - "wait_till": "IngressReady", - "worker_count": 3, - "zones": [ - { - "name": "us-south-1" - } - ] - } - }, - "policy": "no policy available", - "resource_name": "cluster", - "simple_name": "ibm_container_vpc_cluster.cluster", + "plan": {}, + "policy": {}, + "resource_name": "", + "simple_name": "root", "svg_id": "node_4", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:05", - "TimeEstimation": "13:00:00", - "id": "5fcf5dd2b1d825100b8be104", - "name": "ibm_container_vpc_cluster", - "region": "us-south" - }, - "type": "ibm_container_vpc_cluster" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "activity_tracking": [], - "allowed_ip": null, - "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", - "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/faf6addbf6bf476896f5e342a5bdd702:d7af7d65-f60b-41b3-b17c-a3c1e5bc628b:bucket:terraform-demo-bucket-m98hji6hgk89067ga", - "cross_region_location": null, - "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/faf6addbf6bf476896f5e342a5bdd702:d7af7d65-f60b-41b3-b17c-a3c1e5bc628b:bucket:terraform-demo-bucket-m98hji6hgk89067ga:meta:rl:us-south", - "key_protect": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448:key:e0cfcd83-c5a4-4435-a6bd-5ccc95532c0f", - "metrics_monitoring": [], - "region_location": "us-south", - "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/faf6addbf6bf476896f5e342a5bdd702:d7af7d65-f60b-41b3-b17c-a3c1e5bc628b::", - "s3_endpoint_private": "s3.private.us-south.cloud-object-storage.appdomain.cloud", - "s3_endpoint_public": "s3.us-south.cloud-object-storage.appdomain.cloud", - "single_site_location": null, - "storage_class": "standard", - "timeouts": null - }, - "depends_on": [ - "ibm_kp_key.cos_encrypt", - "ibm_resource_instance.cos_instance" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJkZWxldGUiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "standard-ams03", - "provider": "provider.ibm", - "type": "ibm_cos_bucket" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "bucket_name": [ - "terraform-demo-bucket-m98hji6hgk89067ga" - ], - "key_protect": [ - "${ibm_kp_key.cos_encrypt.id}" - ], - "region_location": [ - "us-south" - ], - "resource_instance_id": [ - "${ibm_resource_instance.cos_instance.id}" - ], - "storage_class": [ - "standard" - ] - }, - "group": 20000, - "label": "[root] ibm_cos_bucket.standard-ams03", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_cos_bucket.standard-ams03", - "change": { - "actions": [ - "create" - ], - "after": { - "activity_tracking": [], - "allowed_ip": null, - "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", - "cross_region_location": null, - "metrics_monitoring": [], - "region_location": "us-south", - "single_site_location": null, - "storage_class": "standard", - "timeouts": null - }, - "after_unknown": { - "activity_tracking": [], - "crn": true, - "id": true, - "key_protect": true, - "metrics_monitoring": [], - "resource_instance_id": true, - "s3_endpoint_private": true, - "s3_endpoint_public": true - }, - "before": null - }, - "mode": "managed", - "name": "standard-ams03", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_cos_bucket", - "values": { - "activity_tracking": [], - "allowed_ip": null, - "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", - "cross_region_location": null, - "metrics_monitoring": [], - "region_location": "us-south", - "single_site_location": null, - "storage_class": "standard", - "timeouts": null - } - }, - "policy": "no policy available", - "resource_name": "standard-ams03", - "simple_name": "ibm_cos_bucket.standard-ams03", - "svg_id": "node_5", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:11", - "TimeEstimation": "00:00:12", - "id": "5fcf5dd2b1d825100b8be10b", - "name": "ibm_cos_bucket", - "region": "us-south" - }, - "type": "ibm_cos_bucket" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "id": "28d07d40-7d72-435c-b450-2b2302be3d46", - "roles": [ - "Reader" - ], - "source_resource_group_id": "", - "source_resource_instance_id": "", - "source_resource_type": "", - "source_service_account": "faf6addbf6bf476896f5e342a5bdd702", - "source_service_name": "cloud-object-storage", - "target_resource_group_id": "", - "target_resource_instance_id": "", - "target_resource_type": "", - "target_service_name": "kms", - "version": "1-df798859b0028e21213a0d101ccd6ab1" - }, - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "policy", - "provider": "provider.ibm", - "type": "ibm_iam_authorization_policy" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "roles": [ - [ - "Reader" - ] - ], - "source_service_name": [ - "cloud-object-storage" - ], - "target_service_name": [ - "kms" - ] - }, - "group": 20000, - "label": "[root] ibm_iam_authorization_policy.policy", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_iam_authorization_policy.policy", - "change": { - "actions": [ - "create" - ], - "after": { - "roles": [ - "Reader" - ], - "source_resource_group_id": null, - "source_resource_instance_id": null, - "source_resource_type": null, - "source_service_name": "cloud-object-storage", - "target_resource_group_id": null, - "target_resource_instance_id": null, - "target_resource_type": null, - "target_service_name": "kms" - }, - "after_unknown": { - "id": true, - "roles": [ - false - ], - "source_service_account": true, - "version": true - }, - "before": null - }, - "mode": "managed", - "name": "policy", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_iam_authorization_policy", - "values": { - "roles": [ - "Reader" - ], - "source_resource_group_id": null, - "source_resource_instance_id": null, - "source_resource_type": null, - "source_service_name": "cloud-object-storage", - "target_resource_group_id": null, - "target_resource_instance_id": null, - "target_resource_type": null, - "target_service_name": "kms" - } - }, - "policy": "no policy available", - "resource_name": "policy", - "simple_name": "ibm_iam_authorization_policy.policy", - "svg_id": "node_6", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:36", - "TimeEstimation": "00:02:05", - "id": "5fcf5dd2b1d825100b8be120", - "name": "ibm_iam_authorization_policy", - "region": "us-south" - }, - "type": "ibm_iam_authorization_policy" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:iam-identity::a/faf6addbf6bf476896f5e342a5bdd702::serviceid:ServiceId-7507f414-333e-47c2-9f9f-3abd5c392979", - "description": "", - "id": "ServiceId-7507f414-333e-47c2-9f9f-3abd5c392979", - "name": "demo-cis-dervice", - "tags": null, - "version": "1-6c2c748cc9ba6cefaeee54f941b6e969" - }, - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "serviceID", - "provider": "provider.ibm", - "type": "ibm_iam_service_id" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "name": [ - "demo-cis-dervice" - ] - }, - "group": 20000, - "label": "[root] ibm_iam_service_id.serviceID", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_iam_service_id.serviceID", - "change": { - "actions": [ - "create" - ], - "after": { - "description": null, - "name": "demo-cis-dervice", - "tags": null - }, - "after_unknown": { - "crn": true, - "id": true, - "version": true - }, - "before": null - }, - "mode": "managed", - "name": "serviceID", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_iam_service_id", - "values": { - "description": null, - "name": "demo-cis-dervice", - "tags": null - } - }, - "policy": "no policy available", - "resource_name": "serviceID", - "simple_name": "ibm_iam_service_id.serviceID", - "svg_id": "node_7", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:40", - "TimeEstimation": "00:02:09", - "id": "5fcf5dd2b1d825100b8be12e", - "name": "ibm_iam_service_id", - "region": "us-south" - }, - "type": "ibm_iam_service_id" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "account_management": false, - "iam_service_id": "ServiceId-7507f414-333e-47c2-9f9f-3abd5c392979", - "id": "ServiceId-7507f414-333e-47c2-9f9f-3abd5c392979/482eae7d-6d78-4d59-93fc-9d411e1165c0", - "resources": [ - { - "attributes": null, - "region": "", - "resource": "", - "resource_group_id": "demo_group1", - "resource_instance_id": "", - "resource_type": "", - "service": "cloud-object-storage" - } - ], - "roles": [ - "Writer" - ], - "tags": null, - "version": "1-07a5667958359ddb8ed360fc4fe0ab62" - }, - "depends_on": [ - "ibm_iam_service_id.serviceID" - ], - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "policy", - "provider": "provider.ibm", - "type": "ibm_iam_service_policy" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "iam_service_id": [ - "${ibm_iam_service_id.serviceID.id}" - ], - "resources": [ - { - "resource_group_id": [ - "demo_group1" - ], - "service": [ - "cloud-object-storage" - ] - } - ], - "roles": [ - [ - "Writer" - ] - ] - }, - "group": 20000, - "label": "[root] ibm_iam_service_policy.policy", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_iam_service_policy.policy", - "change": { - "actions": [ - "create" - ], - "after": { - "account_management": false, - "resources": [ - { - "attributes": null, - "region": null, - "resource": null, - "resource_group_id": "demo_group1", - "resource_instance_id": null, - "resource_type": null, - "service": "cloud-object-storage" - } - ], - "roles": [ - "Writer" - ], - "tags": null - }, - "after_unknown": { - "iam_service_id": true, - "id": true, - "resources": [ - {} - ], - "roles": [ - false - ], - "version": true - }, - "before": null - }, - "mode": "managed", - "name": "policy", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_iam_service_policy", - "values": { - "account_management": false, - "resources": [ - { - "attributes": null, - "region": null, - "resource": null, - "resource_group_id": "demo_group1", - "resource_instance_id": null, - "resource_type": null, - "service": "cloud-object-storage" - } - ], - "roles": [ - "Writer" - ], - "tags": null - } - }, - "policy": "no policy available", - "resource_name": "policy", - "simple_name": "ibm_iam_service_policy.policy", - "svg_id": "node_8", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:41", - "TimeEstimation": "00:02:10", - "id": "5fcf5dd2b1d825100b8be135", - "name": "ibm_iam_service_policy", - "region": "us-south" - }, - "type": "ibm_iam_service_policy" - }, - { - "apply": null, - "cluster": "root", - "cost": "no cost available", - "definition": { - "ibm_id": [ - "${var.user1}" - ], - "resources": [ - { - "service": [ - "kms" - ] - } - ], - "roles": [ - [ - "Viewer", - "Administrator" - ] - ] - }, - "group": 20000, - "label": "[root] ibm_iam_user_policy.policy1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_iam_user_policy.policy1", - "change": { - "actions": [ - "create" - ], - "after": { - "account_management": false, - "ibm_id": "test1@in.ibm.com", - "resources": [ - { - "attributes": null, - "region": null, - "resource": null, - "resource_group_id": null, - "resource_instance_id": null, - "resource_type": null, - "service": "kms" - } - ], - "roles": [ - "Viewer", - "Administrator" - ], - "tags": null - }, - "after_unknown": { - "id": true, - "resources": [ - {} - ], - "roles": [ - false, - false - ], - "version": true - }, - "before": null - }, - "mode": "managed", - "name": "policy1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_iam_user_policy", - "values": { - "account_management": false, - "ibm_id": "test1@in.ibm.com", - "resources": [ - { - "attributes": null, - "region": null, - "resource": null, - "resource_group_id": null, - "resource_instance_id": null, - "resource_type": null, - "service": "kms" - } - ], - "roles": [ - "Viewer", - "Administrator" - ], - "tags": null - } - }, - "policy": "no policy available", - "resource_name": "policy1", - "simple_name": "ibm_iam_user_policy.policy1", - "svg_id": "node_9", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:38", - "TimeEstimation": "00:02:07", - "id": "5fcf5dd2b1d825100b8be127", - "name": "ibm_iam_user_policy", - "region": "us-south" - }, - "type": "ibm_iam_user_policy" - }, - { - "apply": null, - "cluster": "root", - "cost": "no cost available", - "definition": { - "ibm_id": [ - "${var.user2}" - ], - "resources": [ - { - "service": [ - "kms" - ] - } - ], - "roles": [ - [ - "Viewer" - ] - ] - }, - "group": 20000, - "label": "[root] ibm_iam_user_policy.policy2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_iam_user_policy.policy2", - "change": { - "actions": [ - "create" - ], - "after": { - "account_management": false, - "ibm_id": "test2@in.ibm.com", - "resources": [ - { - "attributes": null, - "region": null, - "resource": null, - "resource_group_id": null, - "resource_instance_id": null, - "resource_type": null, - "service": "kms" - } - ], - "roles": [ - "Viewer" - ], - "tags": null - }, - "after_unknown": { - "id": true, - "resources": [ - {} - ], - "roles": [ - false - ], - "version": true - }, - "before": null - }, - "mode": "managed", - "name": "policy2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_iam_user_policy", - "values": { - "account_management": false, - "ibm_id": "test2@in.ibm.com", - "resources": [ - { - "attributes": null, - "region": null, - "resource": null, - "resource_group_id": null, - "resource_instance_id": null, - "resource_type": null, - "service": "kms" - } - ], - "roles": [ - "Viewer" - ], - "tags": null - } - }, - "policy": "no policy available", - "resource_name": "policy2", - "simple_name": "ibm_iam_user_policy.policy2", - "svg_id": "node_10", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:38", - "TimeEstimation": "00:02:07", - "id": "5fcf5dd2b1d825100b8be127", - "name": "ibm_iam_user_policy", - "region": "us-south" - }, - "type": "ibm_iam_user_policy" - }, - { - "apply": null, - "cluster": "root", - "cost": { - "depends": null, - "estimateType": "", - "features": null, - "id": "subnet1", - "lineitemtotal": "0 USD", - "planID": "", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_subnet", - "title": "Subnet" - }, - "definition": { - "name": [ - "mysubnet1" - ], - "total_ipv4_address_count": [ - 256 - ], - "vpc": [ - "${ibm_is_vpc.vpc1.id}" - ], - "zone": [ - "us_south-1" - ] - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet1", - "change": { - "actions": [ - "create" - ], - "after": { - "ip_version": "ipv4", - "name": "mysubnet1", - "public_gateway": null, - "timeouts": null, - "total_ipv4_address_count": 256, - "zone": "us_south-1" - }, - "after_unknown": { - "available_ipv4_address_count": true, - "id": true, - "ipv4_cidr_block": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "subnet1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "ip_version": "ipv4", - "name": "mysubnet1", - "public_gateway": null, - "timeouts": null, - "total_ipv4_address_count": 256, - "zone": "us_south-1" - } - }, - "policy": "no policy available", - "resource_name": "subnet1", - "simple_name": "ibm_is_subnet.subnet1", - "svg_id": "node_11", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:72", - "TimeEstimation": "00:00:12", - "id": "5fcf5dd2b1d825100b8be151", - "name": "ibm_is_subnet", - "region": "us-south" - }, - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "available_ipv4_address_count": null, - "id": "3061b57e-ce4c-4dab-b3e0-fab4916a596f", - "ip_version": "ipv4", - "ipv4_cidr_block": "10.240.64.0/24", - "ipv6_cidr_block": null, - "name": "mysubnet2", - "network_acl": "5715e4bb-c86b-4e1b-add5-ba8d1019170c", - "public_gateway": "", - "resource_controller_url": "https://cloud.ibm.com/vpc/network/subnets", - "resource_crn": "crn:v1:bluemix:public:is:us-south-2:a/faf6addbf6bf476896f5e342a5bdd702::subnet:3061b57e-ce4c-4dab-b3e0-fab4916a596f", - "resource_group": null, - "resource_group_name": null, - "resource_name": "mysubnet2", - "resource_status": "available", - "status": "available", - "timeouts": null, - "total_ipv4_address_count": 256, - "vpc": "cc31d4f4-df7f-4fd9-af9a-911cd731c384", - "zone": "us-south-2" - }, - "depends_on": [ - "ibm_is_vpc.vpc1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "subnet2", - "provider": "provider.ibm", - "type": "ibm_is_subnet" - }, - "cluster": "root", - "cost": { - "depends": null, - "estimateType": "", - "features": null, - "id": "subnet2", - "lineitemtotal": "0 USD", - "planID": "", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_subnet", - "title": "Subnet" - }, - "definition": { - "name": [ - "mysubnet2" - ], - "total_ipv4_address_count": [ - 256 - ], - "vpc": [ - "${ibm_is_vpc.vpc1.id}" - ], - "zone": [ - "us-south-2" - ] - }, - "group": 20000, - "label": "[root] ibm_is_subnet.subnet2", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_subnet.subnet2", - "change": { - "actions": [ - "create" - ], - "after": { - "ip_version": "ipv4", - "name": "mysubnet2", - "public_gateway": null, - "timeouts": null, - "total_ipv4_address_count": 256, - "zone": "us-south-2" - }, - "after_unknown": { - "available_ipv4_address_count": true, - "id": true, - "ipv4_cidr_block": true, - "ipv6_cidr_block": true, - "network_acl": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "vpc": true - }, - "before": null - }, - "mode": "managed", - "name": "subnet2", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_subnet", - "values": { - "ip_version": "ipv4", - "name": "mysubnet2", - "public_gateway": null, - "timeouts": null, - "total_ipv4_address_count": 256, - "zone": "us-south-2" - } - }, - "policy": "no policy available", - "resource_name": "subnet2", - "simple_name": "ibm_is_subnet.subnet2", - "svg_id": "node_12", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:72", - "TimeEstimation": "00:00:12", - "id": "5fcf5dd2b1d825100b8be151", - "name": "ibm_is_subnet", - "region": "us-south" - }, - "type": "ibm_is_subnet" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "address_prefix_management": "auto", - "classic_access": false, - "crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:cc31d4f4-df7f-4fd9-af9a-911cd731c384", - "cse_source_addresses": [ - { - "address": "10.249.129.16", - "zone_name": "us-south-3" - }, - { - "address": "10.249.112.94", - "zone_name": "us-south-1" - }, - { - "address": "10.249.120.105", - "zone_name": "us-south-2" - } - ], - "default_network_acl": "5715e4bb-c86b-4e1b-add5-ba8d1019170c", - "default_security_group": "2d364f0a-a870-42c3-a554-000003313984", - "id": "cc31d4f4-df7f-4fd9-af9a-911cd731c384", - "is_default": null, - "name": "myvpc", - "resource_controller_url": "https://cloud.ibm.com/vpc/network/vpcs", - "resource_crn": "crn:v1:bluemix:public:is:us-south:a/faf6addbf6bf476896f5e342a5bdd702::vpc:cc31d4f4-df7f-4fd9-af9a-911cd731c384", - "resource_group": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_group_name": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_name": "myvpc", - "resource_status": "available", - "status": "available", - "subnets": [], - "tags": [], - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwfX0=", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "vpc1", - "provider": "provider.ibm", - "type": "ibm_is_vpc" - }, - "cluster": "root", - "cost": { - "depends": null, - "estimateType": "", - "features": null, - "id": "vpc1", - "lineitemtotal": "0 USD", - "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", - "quantity": 1, - "shortDescription": "", - "terraformItemId": "ibm_is_vpc", - "title": "VPC" - }, - "definition": { - "name": [ - "myvpc" - ] - }, - "group": 20000, - "label": "[root] ibm_is_vpc.vpc1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_is_vpc.vpc1", - "change": { - "actions": [ - "create" - ], - "after": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "myvpc", - "timeouts": null - }, - "after_unknown": { - "crn": true, - "cse_source_addresses": true, - "default_network_acl": true, - "default_security_group": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "subnets": true, - "tags": true - }, - "before": null - }, - "mode": "managed", - "name": "vpc1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_is_vpc", - "values": { - "address_prefix_management": "auto", - "classic_access": false, - "is_default": null, - "name": "myvpc", - "timeouts": null - } - }, - "policy": "no policy available", - "resource_name": "vpc1", - "simple_name": "ibm_is_vpc.vpc1", - "svg_id": "node_13", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:77", - "TimeEstimation": "00:00:18", - "id": "5fcf5dd2b1d825100b8be158", - "name": "ibm_is_vpc", - "region": "us-south" - }, - "type": "ibm_is_vpc" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448:key:e0cfcd83-c5a4-4435-a6bd-5ccc95532c0f", - "encrypted_nonce": null, - "force_delete": false, - "id": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448:key:e0cfcd83-c5a4-4435-a6bd-5ccc95532c0f", - "iv_value": "", - "key_id": "e0cfcd83-c5a4-4435-a6bd-5ccc95532c0f", - "key_name": "key-name", - "key_protect_id": "50b7441a-bf69-44a7-b013-e29919fee448", - "payload": "", - "resource_controller_url": "https://cloud.ibm.com/services/kms/crn%3Av1%3Abluemix%3Apublic%3Akms%3Aus-south%3Aa%2Ffaf6addbf6bf476896f5e342a5bdd702%3A50b7441a-bf69-44a7-b013-e29919fee448%3A%3A", - "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448:key:e0cfcd83-c5a4-4435-a6bd-5ccc95532c0f", - "resource_group_name": null, - "resource_name": "key-name", - "resource_status": null, - "standard_key": false, - "timeouts": null - }, - "depends_on": [ - "ibm_resource_instance.kp_instance" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjM2MDAwMDAwMDAwMDB9fQ==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "cos_encrypt", - "provider": "provider.ibm", - "type": "ibm_kp_key" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "key_name": [ - "key-name" - ], - "key_protect_id": [ - "${ibm_resource_instance.kp_instance.guid}" - ], - "standard_key": [ - false - ] - }, - "group": 20000, - "label": "[root] ibm_kp_key.cos_encrypt", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_kp_key.cos_encrypt", - "change": { - "actions": [ - "create" - ], - "after": { - "encrypted_nonce": null, - "force_delete": false, - "iv_value": null, - "key_name": "key-name", - "standard_key": false, - "timeouts": null - }, - "after_unknown": { - "crn": true, - "id": true, - "key_id": true, - "key_protect_id": true, - "payload": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true - }, - "before": null - }, - "mode": "managed", - "name": "cos_encrypt", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_kp_key", - "values": { - "encrypted_nonce": null, - "force_delete": false, - "iv_value": null, - "key_name": "key-name", - "standard_key": false, - "timeouts": null - } - }, - "policy": "no policy available", - "resource_name": "cos_encrypt", - "simple_name": "ibm_kp_key.cos_encrypt", - "svg_id": "node_14", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:23", - "TimeEstimation": "00:00:02", - "id": "5fcf5dd2b1d825100b8be112", - "name": "ibm_kp_key", - "region": "us-south" - }, - "type": "ibm_kp_key" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "default": false, - "id": "fcf8e40cc42840eab1358d8d1ba53087", - "name": "prod", - "quota_id": null, - "state": "ACTIVE", - "tags": null - }, - "private": "bnVsbA==", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "demo_group1", - "provider": "provider.ibm", - "type": "ibm_resource_group" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "name": [ - "prod" - ] - }, - "group": 20000, - "label": "[root] ibm_resource_group.demo_group1", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_resource_group.demo_group1", - "change": { - "actions": [ - "create" - ], - "after": { - "name": "prod", - "quota_id": null, - "tags": null - }, - "after_unknown": { - "default": true, - "id": true, - "state": true - }, - "before": null - }, - "mode": "managed", - "name": "demo_group1", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_resource_group", - "values": { - "name": "prod", - "quota_id": null, - "tags": null - } - }, - "policy": "no policy available", - "resource_name": "demo_group1", - "simple_name": "ibm_resource_group.demo_group1", - "svg_id": "node_15", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "nan", - "StartTime": "2020-12-07T05:54:04.000+00:24", - "TimeEstimation": "00:00:04", - "id": "5fcf5dd2b1d825100b8be119", - "name": "ibm_resource_group", - "region": "us-south" - }, - "type": "ibm_resource_group" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/faf6addbf6bf476896f5e342a5bdd702:d7af7d65-f60b-41b3-b17c-a3c1e5bc628b::", - "guid": "d7af7d65-f60b-41b3-b17c-a3c1e5bc628b", - "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/faf6addbf6bf476896f5e342a5bdd702:d7af7d65-f60b-41b3-b17c-a3c1e5bc628b::", - "location": "global", - "name": "demo_cos_instance", - "parameters": null, - "plan": "standard", - "resource_controller_url": "https://cloud.ibm.com/services/", - "resource_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/faf6addbf6bf476896f5e342a5bdd702:d7af7d65-f60b-41b3-b17c-a3c1e5bc628b::", - "resource_group_id": "fcf8e40cc42840eab1358d8d1ba53087", - "resource_group_name": "", - "resource_name": "demo_cos_instance", - "resource_status": "active", - "service": "cloud-object-storage", - "service_endpoints": null, - "status": "active", - "tags": [], - "timeouts": null - }, - "depends_on": [ - "ibm_resource_group.demo_group1" - ], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "cos_instance", - "provider": "provider.ibm", - "type": "ibm_resource_instance" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "location": [ - "global" - ], - "name": [ - "demo_cos_instance" - ], - "plan": [ - "standard" - ], - "resource_group_id": [ - "${ibm_resource_group.demo_group1.id}" - ], - "service": [ - "cloud-object-storage" - ] - }, - "group": 20000, - "label": "[root] ibm_resource_instance.cos_instance", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_resource_instance.cos_instance", - "change": { - "actions": [ - "create" - ], - "after": { - "location": "global", - "name": "demo_cos_instance", - "parameters": null, - "plan": "standard", - "service": "cloud-object-storage", - "service_endpoints": null, - "timeouts": null - }, - "after_unknown": { - "crn": true, - "guid": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_id": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "tags": true - }, - "before": null - }, - "mode": "managed", - "name": "cos_instance", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_resource_instance", - "values": { - "location": "global", - "name": "demo_cos_instance", - "parameters": null, - "plan": "standard", - "service": "cloud-object-storage", - "service_endpoints": null, - "timeouts": null - } - }, - "policy": "no policy available", - "resource_name": "cos_instance", - "simple_name": "ibm_resource_instance.cos_instance", - "svg_id": "node_16", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "kms", - "StartTime": "2020-12-07T05:54:04.000+00:82", - "TimeEstimation": "00:01:00", - "id": "5fcf5dd2b1d825100b8be166", - "name": "ibm_resource_instance", - "region": "us-south" - }, - "type": "ibm_resource_instance" - }, - { - "apply": { - "instances": [ - { - "attributes": { - "crn": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448::", - "guid": "50b7441a-bf69-44a7-b013-e29919fee448", - "id": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448::", - "location": "us-south", - "name": "demo_KMS_instance", - "parameters": null, - "plan": "tiered-pricing", - "resource_controller_url": "https://cloud.ibm.com/services/", - "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/faf6addbf6bf476896f5e342a5bdd702:50b7441a-bf69-44a7-b013-e29919fee448::", - "resource_group_id": "d2f1704cfdfd44d196cbe19cbe99a15b", - "resource_group_name": "", - "resource_name": "demo_KMS_instance", - "resource_status": "active", - "service": "kms", - "service_endpoints": null, - "status": "active", - "tags": [], - "timeouts": null - }, - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", - "schema_version": 0 - } - ], - "mode": "managed", - "name": "kp_instance", - "provider": "provider.ibm", - "type": "ibm_resource_instance" - }, - "cluster": "root", - "cost": "no cost available", - "definition": { - "location": [ - "us-south" - ], - "name": [ - "demo_KMS_instance" - ], - "plan": [ - "tiered-pricing" - ], - "service": [ - "kms" - ] - }, - "group": 20000, - "label": "[root] ibm_resource_instance.kp_instance", - "module": "root", - "modules": [ - "root" - ], - "plan": { - "address": "ibm_resource_instance.kp_instance", - "change": { - "actions": [ - "create" - ], - "after": { - "location": "us-south", - "name": "demo_KMS_instance", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "kms", - "service_endpoints": null, - "timeouts": null - }, - "after_unknown": { - "crn": true, - "guid": true, - "id": true, - "resource_controller_url": true, - "resource_crn": true, - "resource_group_name": true, - "resource_name": true, - "resource_status": true, - "status": true, - "tags": true - }, - "before": null - }, - "mode": "managed", - "name": "kp_instance", - "provider_name": "ibm", - "schema_version": 0, - "type": "ibm_resource_instance", - "values": { - "location": "us-south", - "name": "demo_KMS_instance", - "parameters": null, - "plan": "tiered-pricing", - "resource_group_id": null, - "service": "kms", - "service_endpoints": null, - "timeouts": null - } - }, - "policy": "no policy available", - "resource_name": "kp_instance", - "simple_name": "ibm_resource_instance.kp_instance", - "svg_id": "node_17", - "time": { - "AccuracyPercentage": 50, - "Action": "create", - "Day": "Tue", - "ServiceType": "kms", - "StartTime": "2020-12-07T05:54:04.000+00:82", - "TimeEstimation": "00:01:00", - "id": "5fcf5dd2b1d825100b8be166", - "name": "ibm_resource_instance", - "region": "us-south" - }, - "type": "ibm_resource_instance" - }, - { - "apply": {}, - "cluster": "root", - "cost": "no cost data available", - "definition": { - "generation": [ - 1 - ] - }, - "group": 20000, - "label": "[root] provider.ibm", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": "no policy data available", - "resource_name": "ibm", - "simple_name": "provider.ibm", - "svg_id": "node_18", - "time": "no time estimation available", - "type": "provider" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_iam_user_policy.policy1_var_", - "cost": "no cost available", - "definition": { - "default": [ - "test1@in.ibm.com" - ] - }, - "group": 20000, - "label": "[root] var.user1", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "user1", - "simple_name": "var.user1", - "svg_id": "node_19", - "time": "no time estimation available", - "type": "var" - }, - { - "apply": null, - "cluster": "cluster[root] ibm_iam_user_policy.policy2_var_", - "cost": "no cost available", - "definition": { - "default": [ - "test2@in.ibm.com" - ] - }, - "group": 20000, - "label": "[root] var.user2", - "module": "root", - "modules": [ - "root" - ], - "plan": null, - "policy": "no policy available", - "resource_name": "user2", - "simple_name": "var.user2", - "svg_id": "node_20", - "time": "no time estimation available", - "type": "var" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": "", - "group": 20000, - "label": "[root] meta.count-boundary (EachMode fixup)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "count-boundary", - "simple_name": "meta.count-boundary (EachMode fixup)", - "svg_id": "node_21", - "time": {}, - "type": "meta" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": { - "generation": [ - 1 - ] - }, - "group": 20000, - "label": "[root] provider.ibm (close)", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "ibm", - "simple_name": "provider.ibm (close)", - "svg_id": "node_22", - "time": {}, - "type": "provider" - }, - { - "apply": {}, - "cluster": "root", - "cost": {}, - "definition": "", - "group": 20000, - "label": "[root] root", - "module": "root", - "modules": [ - "root" - ], - "plan": {}, - "policy": {}, - "resource_name": "", - "simple_name": "root", - "svg_id": "node_23", "time": {}, "type": "" } ], - "totalcost": "269.1 USD", - "totaltime": "13:05:30" + "totalcost": "", + "totaltime": "" } \ No newline at end of file diff --git a/npm/example/demo-4/visualization.svg b/npm/example/demo-4/visualization.svg index a02b628..6ef64ce 100644 --- a/npm/example/demo-4/visualization.svg +++ b/npm/example/demo-4/visualization.svg @@ -4,511 +4,214 @@ - - - - + + + + -[root] ibm_cis.demo_web_domain - -ibm_cis - -demo_web_domain - -config - -+ - -apply - -controls              - -N/A                  - -00:04:00             - - - -[root] ibm_resource_group.demo_group1 - -ibm_resource_group - -demo_group1 - -config - -+ - -apply - -controls              - -N/A                  - -00:00:04             - - +[root] ibm_cis.web_domain + + + +ibm_cis              + + + + +web_domain           + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_resource_group.web_group + + + +ibm_resource_group   + + + + +web_group            + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] ibm_cis.demo_web_domain->[root] ibm_resource_group.demo_group1 - - +[root] ibm_cis.web_domain->[root] ibm_resource_group.web_group + + - + -[root] ibm_cis_domain.demo_web_domain - -ibm_cis_domain - -demo_web_domain - -config - -+ - -apply - -controls              - -N/A                  - -00:04:01             - - +[root] ibm_cis_domain.web_domain + + + +ibm_cis_domain       + + + + +web_domain           + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] ibm_cis_domain.demo_web_domain->[root] ibm_cis.demo_web_domain - - +[root] ibm_cis_domain.web_domain->[root] ibm_cis.web_domain + + - + -[root] ibm_cis_domain_settings.demo_web_domain - -ibm_cis_domain_settings - -demo_web_domain - -config - -+ - -apply - -controls              - -N/A                  - -00:04:02             - - +[root] ibm_cis_domain_settings.web_domain + + + +ibm_cis_domain_settings + + + + +web_domain           + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + -[root] ibm_cis_domain_settings.demo_web_domain->[root] ibm_cis_domain.demo_web_domain - - - - - -[root] ibm_container_bind_service.bind_service - -ibm_container_bind_service - -bind_service - -config - -+ - -apply - -controls              - -N/A                  - -00:05:00             - - - -[root] ibm_container_vpc_cluster.cluster - -ibm_container_vpc_cluster - -cluster - -config - -+ - -apply - -controls              - -269.1 USD            - -13:00:00             - - - -[root] ibm_container_bind_service.bind_service->[root] ibm_container_vpc_cluster.cluster - - - - - -[root] ibm_resource_instance.cos_instance - -ibm_resource_instance - -cos_instance - -config - -+ - -apply - -controls              - -N/A                  - -00:01:00             - - - -[root] ibm_container_bind_service.bind_service->[root] ibm_resource_instance.cos_instance - - - - - -[root] ibm_is_subnet.subnet1 - -ibm_is_subnet - -subnet1 - -config - -+ - -apply - -controls              - -0 USD                - -00:00:12             - - - -[root] ibm_container_vpc_cluster.cluster->[root] ibm_is_subnet.subnet1 - - - - - -[root] ibm_container_vpc_cluster.cluster->[root] ibm_resource_group.demo_group1 - - - - - -[root] ibm_cos_bucket.standard-ams03 - -ibm_cos_bucket - -standard-ams03 - -config - -+ - -apply - -controls              - -N/A                  - -00:00:12             - - - -[root] ibm_kp_key.cos_encrypt - -ibm_kp_key - -cos_encrypt - -config - -+ - -apply - -controls              - -N/A                  - -00:00:02             - - - -[root] ibm_cos_bucket.standard-ams03->[root] ibm_kp_key.cos_encrypt - - - - - -[root] ibm_cos_bucket.standard-ams03->[root] ibm_resource_instance.cos_instance - - - - - -[root] ibm_iam_authorization_policy.policy - -ibm_iam_authorization_policy - -policy - -config - -+ - -apply - -controls              - -N/A                  - -00:02:05             - - - -[root] ibm_iam_service_id.serviceID - -ibm_iam_service_id - -serviceID - -config - -+ - -apply - -controls              - -N/A                  - -00:02:09             - - - -[root] ibm_iam_service_policy.policy - -ibm_iam_service_policy - -policy - -config - -+ - -apply - -controls              - -N/A                  - -00:02:10             - - - -[root] ibm_iam_service_policy.policy->[root] ibm_iam_service_id.serviceID - - - - - -[root] ibm_iam_user_policy.policy1 - -ibm_iam_user_policy - -policy1 - -config - -+ - -apply - -controls              - -N/A                  - -00:02:07             - - - -[root] ibm_iam_user_policy.policy2 - -ibm_iam_user_policy - -policy2 - -config - -+ - -apply - -controls              - -N/A                  - -00:02:07             - - - -[root] ibm_is_vpc.vpc1 - -ibm_is_vpc - -vpc1 - -config - -+ - -apply - -controls              - -0 USD                - -00:00:18             - - - -[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc.vpc1 - - - - - -[root] ibm_is_subnet.subnet2 - -ibm_is_subnet - -subnet2 - -config - -+ - -apply - -controls              - -0 USD                - -00:00:12             - - - -[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc.vpc1 - - - - - -[root] ibm_resource_instance.kp_instance - -ibm_resource_instance - -kp_instance - -config - -+ - -apply - -controls              - -N/A                  - -00:01:00             - - - -[root] ibm_kp_key.cos_encrypt->[root] ibm_resource_instance.kp_instance - - - - - -[root] ibm_resource_instance.cos_instance->[root] ibm_resource_group.demo_group1 - - +[root] ibm_cis_domain_settings.web_domain->[root] ibm_cis_domain.web_domain + + - + [root] root - -[root] root - -269.1 USD - -13:05:30 - - - -[root] root->[root] ibm_cis_domain_settings.demo_web_domain - - - - - -[root] root->[root] ibm_container_bind_service.bind_service - - - - - -[root] root->[root] ibm_cos_bucket.standard-ams03 - - + +[root] root - - -[root] root->[root] ibm_iam_authorization_policy.policy - - - - - -[root] root->[root] ibm_iam_service_policy.policy - - - - - -[root] root->[root] ibm_iam_user_policy.policy1 - - - - - -[root] root->[root] ibm_iam_user_policy.policy2 - - - - - -[root] root->[root] ibm_is_subnet.subnet2 - - + + +[root] root->[root] ibm_cis_domain_settings.web_domain + + diff --git a/npm/example/graph.json b/npm/example/graph.json new file mode 100644 index 0000000..6e8bbf9 --- /dev/null +++ b/npm/example/graph.json @@ -0,0 +1,1904 @@ +{ + "edges": [ + { + "edge_type": 1, + "source": "[root] ibm_cis.demo_web_domain", + "svg_id": "edge_0", + "target": "[root] ibm_resource_group.demo_group1" + }, + { + "edge_type": 1, + "source": "[root] ibm_cis_domain.demo_web_domain", + "svg_id": "edge_1", + "target": "[root] ibm_cis.demo_web_domain" + }, + { + "edge_type": 1, + "source": "[root] ibm_cis_domain_settings.demo_web_domain", + "svg_id": "edge_2", + "target": "[root] ibm_cis_domain.demo_web_domain" + }, + { + "edge_type": 1, + "source": "[root] ibm_container_bind_service.bind_service", + "svg_id": "edge_3", + "target": "[root] ibm_container_vpc_cluster.cluster" + }, + { + "edge_type": 1, + "source": "[root] ibm_container_bind_service.bind_service", + "svg_id": "edge_4", + "target": "[root] ibm_resource_instance.cos_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_container_vpc_cluster.cluster", + "svg_id": "edge_5", + "target": "[root] ibm_is_subnet.subnet1" + }, + { + "edge_type": 1, + "source": "[root] ibm_container_vpc_cluster.cluster", + "svg_id": "edge_6", + "target": "[root] ibm_resource_group.demo_group1" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.standard-ams03", + "svg_id": "edge_7", + "target": "[root] ibm_kp_key.cos_encrypt" + }, + { + "edge_type": 1, + "source": "[root] ibm_cos_bucket.standard-ams03", + "svg_id": "edge_8", + "target": "[root] ibm_resource_instance.cos_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_iam_service_policy.policy", + "svg_id": "edge_9", + "target": "[root] ibm_iam_service_id.serviceID" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet1", + "svg_id": "edge_10", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_is_subnet.subnet2", + "svg_id": "edge_11", + "target": "[root] ibm_is_vpc.vpc1" + }, + { + "edge_type": 1, + "source": "[root] ibm_kp_key.cos_encrypt", + "svg_id": "edge_12", + "target": "[root] ibm_resource_instance.kp_instance" + }, + { + "edge_type": 1, + "source": "[root] ibm_resource_instance.cos_instance", + "svg_id": "edge_13", + "target": "[root] ibm_resource_group.demo_group1" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_14", + "target": "[root] ibm_cis_domain_settings.demo_web_domain" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_15", + "target": "[root] ibm_container_bind_service.bind_service" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_16", + "target": "[root] ibm_cos_bucket.standard-ams03" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_17", + "target": "[root] ibm_iam_authorization_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_18", + "target": "[root] ibm_iam_service_policy.policy" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_19", + "target": "[root] ibm_iam_user_policy.policy1" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_20", + "target": "[root] ibm_iam_user_policy.policy2" + }, + { + "edge_type": 1, + "source": "[root] root", + "svg_id": "edge_21", + "target": "[root] ibm_is_subnet.subnet2" + } + ], + "nodes": [ + { + "apply": { + "instances": [ + { + "attributes": { + "guid": "592261fe-bc09-4a3e-a91d-0ad3a83d3196", + "id": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "resource_controller_url": "https://cloud.ibm.com/internet-svcs/crn%3Av1%3Abluemix%3Apublic%3Ainternet-svcs%3Aglobal%3Aa%2F93cd8038cd994fe29c0646a1ed609032%3A592261fe-bc09-4a3e-a91d-0ad3a83d3196%3A%3A", + "resource_crn": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "resource_group_id": "52f9d499dfdc4db388f4e9094ac93313", + "resource_group_name": "", + "resource_name": "web_domain", + "resource_status": "active", + "service": "internet-svcs", + "status": "active", + "tags": null, + "timeouts": null + }, + "depends_on": [ + "ibm_resource_group.demo_group1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "demo_web_domain", + "provider": "provider.ibm", + "type": "ibm_cis" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "location": [ + "global" + ], + "name": [ + "web_domain" + ], + "plan": [ + "standard" + ], + "resource_group_id": [ + "${ibm_resource_group.demo_group1.id}" + ] + }, + "group": 20000, + "label": "[root] ibm_cis.demo_web_domain", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cis.demo_web_domain", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null + }, + "after_unknown": { + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "service": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "demo_web_domain", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cis", + "values": { + "location": "global", + "name": "web_domain", + "parameters": null, + "plan": "standard", + "tags": null, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "demo_web_domain", + "simple_name": "ibm_cis.demo_web_domain", + "svg_id": "node_0", + "time": "no time estimation available", + "type": "ibm_cis" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "cis_id": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "domain": "demo.ibm.com", + "id": "2e86accf0abe5b8fa09bfbeb1c66a48f:crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "name_servers": [ + "ns061.name.cloud.ibm.com", + "ns118.name.cloud.ibm.com" + ], + "original_name_servers": [], + "paused": false, + "status": "pending" + }, + "depends_on": [ + "ibm_cis.demo_web_domain" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "demo_web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "cis_id": [ + "${ibm_cis.demo_web_domain.id}" + ], + "domain": [ + "demo.ibm.com" + ] + }, + "group": 20000, + "label": "[root] ibm_cis_domain.demo_web_domain", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cis_domain.demo_web_domain", + "change": { + "actions": [ + "create" + ], + "after": { + "domain": "demo.ibm.com" + }, + "after_unknown": { + "cis_id": true, + "id": true, + "name_servers": true, + "original_name_servers": true, + "paused": true, + "status": true + }, + "before": null + }, + "mode": "managed", + "name": "demo_web_domain", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cis_domain", + "values": { + "domain": "demo.ibm.com" + } + }, + "policy": "no policy available", + "resource_name": "demo_web_domain", + "simple_name": "ibm_cis_domain.demo_web_domain", + "svg_id": "node_1", + "time": "no time estimation available", + "type": "ibm_cis_domain" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "always_use_https": "off", + "automatic_https_rewrites": "off", + "brotli": null, + "browser_check": "on", + "certificate_status": null, + "cis_id": "crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "cname_flattening": "flatten_at_root", + "domain_id": "2e86accf0abe5b8fa09bfbeb1c66a48f:crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "hotlink_protection": "off", + "http2": "on", + "id": "2e86accf0abe5b8fa09bfbeb1c66a48f:crn:v1:bluemix:public:internet-svcs:global:a/93cd8038cd994fe29c0646a1ed609032:592261fe-bc09-4a3e-a91d-0ad3a83d3196::", + "image_load_optimization": "off", + "image_size_optimization": "off", + "ip_geolocation": "on", + "ipv6": "on", + "min_tls_version": "1.2", + "opportunistic_encryption": "off", + "origin_error_page_pass_thru": null, + "prefetch_preload": null, + "pseudo_ipv4": null, + "response_buffering": null, + "script_load_optimization": null, + "server_side_exclude": null, + "ssl": "full", + "tls_client_auth": null, + "true_client_ip_header": null, + "waf": "on", + "websockets": null + }, + "depends_on": [ + "ibm_cis.demo_web_domain", + "ibm_cis_domain.demo_web_domain" + ], + "private": "bnVsbA==", + "schema_version": 0, + "status": "tainted" + } + ], + "mode": "managed", + "name": "demo_web_domain", + "provider": "provider.ibm", + "type": "ibm_cis_domain_settings" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "cis_id": [ + "${ibm_cis.demo_web_domain.id}" + ], + "domain_id": [ + "${ibm_cis_domain.demo_web_domain.id}" + ], + "min_tls_version": [ + "1.2" + ], + "ssl": [ + "full" + ], + "waf": [ + "on" + ] + }, + "group": 20000, + "label": "[root] ibm_cis_domain_settings.demo_web_domain", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cis_domain_settings.demo_web_domain", + "change": { + "actions": [ + "create" + ], + "after": { + "min_tls_version": "1.2", + "ssl": "full", + "waf": "on" + }, + "after_unknown": { + "always_use_https": true, + "automatic_https_rewrites": true, + "brotli": true, + "browser_check": true, + "certificate_status": true, + "cis_id": true, + "cname_flattening": true, + "domain_id": true, + "hotlink_protection": true, + "http2": true, + "id": true, + "image_load_optimization": true, + "image_size_optimization": true, + "ip_geolocation": true, + "ipv6": true, + "opportunistic_encryption": true, + "origin_error_page_pass_thru": true, + "prefetch_preload": true, + "pseudo_ipv4": true, + "response_buffering": true, + "script_load_optimization": true, + "server_side_exclude": true, + "tls_client_auth": true, + "true_client_ip_header": true, + "websockets": true + }, + "before": null + }, + "mode": "managed", + "name": "demo_web_domain", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cis_domain_settings", + "values": { + "min_tls_version": "1.2", + "ssl": "full", + "waf": "on" + } + }, + "policy": "no policy available", + "resource_name": "demo_web_domain", + "simple_name": "ibm_cis_domain_settings.demo_web_domain", + "svg_id": "node_2", + "time": "no time estimation available", + "type": "ibm_cis_domain_settings" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "bind_service", + "provider": "provider.ibm", + "type": "ibm_container_bind_service" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "cluster_name_id": [ + "${ibm_container_vpc_cluster.cluster.id}" + ], + "namespace_id": [ + "default" + ], + "role": [ + "Writer" + ], + "service_instance_id": [ + "${element(split(\":\",ibm_resource_instance.cos_instance.id),7)}" + ] + }, + "group": 20000, + "label": "[root] ibm_container_bind_service.bind_service", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_container_bind_service.bind_service", + "change": { + "actions": [ + "create" + ], + "after": { + "account_guid": null, + "key": null, + "namespace_id": "default", + "org_guid": null, + "region": null, + "resource_group_id": null, + "role": "Writer", + "service_instance_name_id": null, + "service_instance_space_guid": null, + "space_guid": null, + "tags": null + }, + "after_unknown": { + "cluster_name_id": true, + "id": true, + "secret_name": true, + "service_instance_id": true, + "service_instance_name": true + }, + "before": null + }, + "mode": "managed", + "name": "bind_service", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_container_bind_service", + "values": { + "account_guid": null, + "key": null, + "namespace_id": "default", + "org_guid": null, + "region": null, + "resource_group_id": null, + "role": "Writer", + "service_instance_name_id": null, + "service_instance_space_guid": null, + "space_guid": null, + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "bind_service", + "simple_name": "ibm_container_bind_service.bind_service", + "svg_id": "node_3", + "time": "no time estimation available", + "type": "ibm_container_bind_service" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "cluster", + "provider": "provider.ibm", + "type": "ibm_container_vpc_cluster" + }, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "cluster", + "lineitemtotal": "269.1 USD", + "planID": "", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_container_vpc_cluster", + "title": "Cluster" + }, + "definition": { + "flavor": [ + "bc1-2x8" + ], + "name": [ + "mycluster" + ], + "resource_group_id": [ + "${ibm_resource_group.demo_group1.id}" + ], + "vpc_id": [ + "${ibm_is_vpc.vpc1.id}" + ], + "worker_count": [ + 3 + ], + "zones": [ + { + "name": [ + "us-south-1" + ], + "subnet_id": [ + "${ibm_is_subnet.subnet1.id}" + ] + } + ] + }, + "group": 20000, + "label": "[root] ibm_container_vpc_cluster.cluster", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_container_vpc_cluster.cluster", + "change": { + "actions": [ + "create" + ], + "after": { + "cos_instance_crn": null, + "disable_public_service_endpoint": false, + "entitlement": null, + "flavor": "bc1-2x8", + "name": "mycluster", + "timeouts": null, + "wait_till": "IngressReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1" + } + ] + }, + "after_unknown": { + "albs": true, + "crn": true, + "id": true, + "ingress_hostname": true, + "ingress_secret": true, + "kube_version": true, + "master_status": true, + "master_url": true, + "pod_subnet": true, + "private_service_endpoint_url": true, + "public_service_endpoint_url": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "service_subnet": true, + "state": true, + "tags": true, + "vpc_id": true, + "zones": [ + { + "subnet_id": true + } + ] + }, + "before": null + }, + "mode": "managed", + "name": "cluster", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_container_vpc_cluster", + "values": { + "cos_instance_crn": null, + "disable_public_service_endpoint": false, + "entitlement": null, + "flavor": "bc1-2x8", + "name": "mycluster", + "timeouts": null, + "wait_till": "IngressReady", + "worker_count": 3, + "zones": [ + { + "name": "us-south-1" + } + ] + } + }, + "policy": "no policy available", + "resource_name": "cluster", + "simple_name": "ibm_container_vpc_cluster.cluster", + "svg_id": "node_4", + "time": "no time estimation available", + "type": "ibm_container_vpc_cluster" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "bucket_name": [ + "terraform-demo-bucket-m98hji6hgk89067ga" + ], + "key_protect": [ + "${ibm_kp_key.cos_encrypt.id}" + ], + "region_location": [ + "us-south" + ], + "resource_instance_id": [ + "${ibm_resource_instance.cos_instance.id}" + ], + "storage_class": [ + "standard" + ] + }, + "group": 20000, + "label": "[root] ibm_cos_bucket.standard-ams03", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_cos_bucket.standard-ams03", + "change": { + "actions": [ + "create" + ], + "after": { + "activity_tracking": [], + "allowed_ip": null, + "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", + "cross_region_location": null, + "metrics_monitoring": [], + "region_location": "us-south", + "single_site_location": null, + "storage_class": "standard", + "timeouts": null + }, + "after_unknown": { + "activity_tracking": [], + "crn": true, + "id": true, + "key_protect": true, + "metrics_monitoring": [], + "resource_instance_id": true, + "s3_endpoint_private": true, + "s3_endpoint_public": true + }, + "before": null + }, + "mode": "managed", + "name": "standard-ams03", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_cos_bucket", + "values": { + "activity_tracking": [], + "allowed_ip": null, + "bucket_name": "terraform-demo-bucket-m98hji6hgk89067ga", + "cross_region_location": null, + "metrics_monitoring": [], + "region_location": "us-south", + "single_site_location": null, + "storage_class": "standard", + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "standard-ams03", + "simple_name": "ibm_cos_bucket.standard-ams03", + "svg_id": "node_5", + "time": "no time estimation available", + "type": "ibm_cos_bucket" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "roles": [ + [ + "Reader" + ] + ], + "source_service_name": [ + "cloud-object-storage" + ], + "target_service_name": [ + "kms" + ] + }, + "group": 20000, + "label": "[root] ibm_iam_authorization_policy.policy", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_iam_authorization_policy.policy", + "change": { + "actions": [ + "create" + ], + "after": { + "roles": [ + "Reader" + ], + "source_resource_group_id": null, + "source_resource_instance_id": null, + "source_resource_type": null, + "source_service_name": "cloud-object-storage", + "target_resource_group_id": null, + "target_resource_instance_id": null, + "target_resource_type": null, + "target_service_name": "kms" + }, + "after_unknown": { + "id": true, + "roles": [ + false + ], + "source_service_account": true, + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_authorization_policy", + "values": { + "roles": [ + "Reader" + ], + "source_resource_group_id": null, + "source_resource_instance_id": null, + "source_resource_type": null, + "source_service_name": "cloud-object-storage", + "target_resource_group_id": null, + "target_resource_instance_id": null, + "target_resource_type": null, + "target_service_name": "kms" + } + }, + "policy": "no policy available", + "resource_name": "policy", + "simple_name": "ibm_iam_authorization_policy.policy", + "svg_id": "node_6", + "time": "no time estimation available", + "type": "ibm_iam_authorization_policy" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:iam-identity::a/93cd8038cd994fe29c0646a1ed609032::serviceid:ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93", + "description": "", + "id": "ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93", + "name": "demo-cis-dervice", + "tags": null, + "version": "1-9fb5e62df9b334948fbb1ea9ed8d7e6a" + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "serviceID", + "provider": "provider.ibm", + "type": "ibm_iam_service_id" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "name": [ + "demo-cis-dervice" + ] + }, + "group": 20000, + "label": "[root] ibm_iam_service_id.serviceID", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_iam_service_id.serviceID", + "change": { + "actions": [ + "create" + ], + "after": { + "description": null, + "name": "demo-cis-dervice", + "tags": null + }, + "after_unknown": { + "crn": true, + "id": true, + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "serviceID", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_service_id", + "values": { + "description": null, + "name": "demo-cis-dervice", + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "serviceID", + "simple_name": "ibm_iam_service_id.serviceID", + "svg_id": "node_7", + "time": "no time estimation available", + "type": "ibm_iam_service_id" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "account_management": false, + "iam_service_id": "ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93", + "id": "ServiceId-e2de2af5-d4b2-48b6-ab2f-1497c9a0ea93/6b5ff8e6-97f4-4181-9e87-ebb436e366e5", + "resources": [ + { + "attributes": null, + "region": "", + "resource": "", + "resource_group_id": "demo_group1", + "resource_instance_id": "", + "resource_type": "", + "service": "cloud-object-storage" + } + ], + "roles": [ + "Writer" + ], + "tags": null, + "version": "1-89feba3c86c28d43368189ad94650252" + }, + "depends_on": [ + "ibm_iam_service_id.serviceID" + ], + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "policy", + "provider": "provider.ibm", + "type": "ibm_iam_service_policy" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "iam_service_id": [ + "${ibm_iam_service_id.serviceID.id}" + ], + "resources": [ + { + "resource_group_id": [ + "demo_group1" + ], + "service": [ + "cloud-object-storage" + ] + } + ], + "roles": [ + [ + "Writer" + ] + ] + }, + "group": 20000, + "label": "[root] ibm_iam_service_policy.policy", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_iam_service_policy.policy", + "change": { + "actions": [ + "create" + ], + "after": { + "account_management": false, + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": "demo_group1", + "resource_instance_id": null, + "resource_type": null, + "service": "cloud-object-storage" + } + ], + "roles": [ + "Writer" + ], + "tags": null + }, + "after_unknown": { + "iam_service_id": true, + "id": true, + "resources": [ + {} + ], + "roles": [ + false + ], + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_service_policy", + "values": { + "account_management": false, + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": "demo_group1", + "resource_instance_id": null, + "resource_type": null, + "service": "cloud-object-storage" + } + ], + "roles": [ + "Writer" + ], + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "policy", + "simple_name": "ibm_iam_service_policy.policy", + "svg_id": "node_8", + "time": "no time estimation available", + "type": "ibm_iam_service_policy" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "ibm_id": [ + "${var.user1}" + ], + "resources": [ + { + "service": [ + "kms" + ] + } + ], + "roles": [ + [ + "Viewer", + "Administrator" + ] + ] + }, + "group": 20000, + "label": "[root] ibm_iam_user_policy.policy1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_iam_user_policy.policy1", + "change": { + "actions": [ + "create" + ], + "after": { + "account_management": false, + "ibm_id": "test1@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer", + "Administrator" + ], + "tags": null + }, + "after_unknown": { + "id": true, + "resources": [ + {} + ], + "roles": [ + false, + false + ], + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_user_policy", + "values": { + "account_management": false, + "ibm_id": "test1@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer", + "Administrator" + ], + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "policy1", + "simple_name": "ibm_iam_user_policy.policy1", + "svg_id": "node_9", + "time": "no time estimation available", + "type": "ibm_iam_user_policy" + }, + { + "apply": null, + "cluster": "root", + "cost": "no cost available", + "definition": { + "ibm_id": [ + "${var.user2}" + ], + "resources": [ + { + "service": [ + "kms" + ] + } + ], + "roles": [ + [ + "Viewer" + ] + ] + }, + "group": 20000, + "label": "[root] ibm_iam_user_policy.policy2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_iam_user_policy.policy2", + "change": { + "actions": [ + "create" + ], + "after": { + "account_management": false, + "ibm_id": "test2@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer" + ], + "tags": null + }, + "after_unknown": { + "id": true, + "resources": [ + {} + ], + "roles": [ + false + ], + "version": true + }, + "before": null + }, + "mode": "managed", + "name": "policy2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_iam_user_policy", + "values": { + "account_management": false, + "ibm_id": "test2@in.ibm.com", + "resources": [ + { + "attributes": null, + "region": null, + "resource": null, + "resource_group_id": null, + "resource_instance_id": null, + "resource_type": null, + "service": "kms" + } + ], + "roles": [ + "Viewer" + ], + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "policy2", + "simple_name": "ibm_iam_user_policy.policy2", + "svg_id": "node_10", + "time": "no time estimation available", + "type": "ibm_iam_user_policy" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "subnet1", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "subnet1", + "lineitemtotal": "0 USD", + "planID": "", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_subnet", + "title": "Subnet" + }, + "definition": { + "name": [ + "mysubnet1" + ], + "total_ipv4_address_count": [ + 256 + ], + "vpc": [ + "${ibm_is_vpc.vpc1.id}" + ], + "zone": [ + "us_south-1" + ] + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet1", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "name": "mysubnet1", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us_south-1" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv4_cidr_block": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "name": "mysubnet1", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us_south-1" + } + }, + "policy": "no policy available", + "resource_name": "subnet1", + "simple_name": "ibm_is_subnet.subnet1", + "svg_id": "node_11", + "time": "no time estimation available", + "type": "ibm_is_subnet" + }, + { + "apply": { + "instances": [], + "mode": "managed", + "name": "subnet2", + "provider": "provider.ibm", + "type": "ibm_is_subnet" + }, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "subnet2", + "lineitemtotal": "0 USD", + "planID": "", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_subnet", + "title": "Subnet" + }, + "definition": { + "name": [ + "mysubnet2" + ], + "total_ipv4_address_count": [ + 256 + ], + "vpc": [ + "${ibm_is_vpc.vpc1.id}" + ], + "zone": [ + "us-south-2" + ] + }, + "group": 20000, + "label": "[root] ibm_is_subnet.subnet2", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_subnet.subnet2", + "change": { + "actions": [ + "create" + ], + "after": { + "ip_version": "ipv4", + "name": "mysubnet2", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us-south-2" + }, + "after_unknown": { + "available_ipv4_address_count": true, + "id": true, + "ipv4_cidr_block": true, + "ipv6_cidr_block": true, + "network_acl": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "vpc": true + }, + "before": null + }, + "mode": "managed", + "name": "subnet2", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_subnet", + "values": { + "ip_version": "ipv4", + "name": "mysubnet2", + "public_gateway": null, + "timeouts": null, + "total_ipv4_address_count": 256, + "zone": "us-south-2" + } + }, + "policy": "no policy available", + "resource_name": "subnet2", + "simple_name": "ibm_is_subnet.subnet2", + "svg_id": "node_12", + "time": "no time estimation available", + "type": "ibm_is_subnet" + }, + { + "apply": null, + "cluster": "root", + "cost": { + "depends": null, + "estimateType": "", + "features": null, + "id": "vpc1", + "lineitemtotal": "0 USD", + "planID": "aeb480c6-11ae-4abc-929a-eaaefcdc5615", + "quantity": 1, + "shortDescription": "", + "terraformItemId": "ibm_is_vpc", + "title": "VPC" + }, + "definition": { + "name": [ + "myvpc" + ] + }, + "group": 20000, + "label": "[root] ibm_is_vpc.vpc1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_is_vpc.vpc1", + "change": { + "actions": [ + "create" + ], + "after": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "myvpc", + "timeouts": null + }, + "after_unknown": { + "crn": true, + "cse_source_addresses": true, + "default_network_acl": true, + "default_security_group": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "subnets": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "vpc1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_is_vpc", + "values": { + "address_prefix_management": "auto", + "classic_access": false, + "is_default": null, + "name": "myvpc", + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "vpc1", + "simple_name": "ibm_is_vpc.vpc1", + "svg_id": "node_13", + "time": "no time estimation available", + "type": "ibm_is_vpc" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e:key:fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "encrypted_nonce": null, + "force_delete": false, + "id": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e:key:fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "iv_value": "", + "key_id": "fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "key_name": "key-name", + "key_protect_id": "0948eeee-1252-41a8-80b6-b7797b14ad4e", + "payload": "", + "resource_controller_url": "https://cloud.ibm.com/services/kms/crn%3Av1%3Abluemix%3Apublic%3Akms%3Aus-south%3Aa%2F93cd8038cd994fe29c0646a1ed609032%3A0948eeee-1252-41a8-80b6-b7797b14ad4e%3A%3A", + "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e:key:fbfdf3f3-ab23-4729-81a7-eba96d30c9fb", + "resource_group_name": null, + "resource_name": "key-name", + "resource_status": null, + "standard_key": false, + "timeouts": null + }, + "depends_on": [ + "ibm_resource_instance.kp_instance" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozNjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjM2MDAwMDAwMDAwMDB9fQ==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "cos_encrypt", + "provider": "provider.ibm", + "type": "ibm_kp_key" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "key_name": [ + "key-name" + ], + "key_protect_id": [ + "${ibm_resource_instance.kp_instance.guid}" + ], + "standard_key": [ + false + ] + }, + "group": 20000, + "label": "[root] ibm_kp_key.cos_encrypt", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_kp_key.cos_encrypt", + "change": { + "actions": [ + "create" + ], + "after": { + "encrypted_nonce": null, + "force_delete": false, + "iv_value": null, + "key_name": "key-name", + "standard_key": false, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "id": true, + "key_id": true, + "key_protect_id": true, + "payload": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_encrypt", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_kp_key", + "values": { + "encrypted_nonce": null, + "force_delete": false, + "iv_value": null, + "key_name": "key-name", + "standard_key": false, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "cos_encrypt", + "simple_name": "ibm_kp_key.cos_encrypt", + "svg_id": "node_14", + "time": "no time estimation available", + "type": "ibm_kp_key" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "default": false, + "id": "52f9d499dfdc4db388f4e9094ac93313", + "name": "prod", + "quota_id": null, + "state": "ACTIVE", + "tags": null + }, + "private": "bnVsbA==", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "demo_group1", + "provider": "provider.ibm", + "type": "ibm_resource_group" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "name": [ + "prod" + ] + }, + "group": 20000, + "label": "[root] ibm_resource_group.demo_group1", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_group.demo_group1", + "change": { + "actions": [ + "create" + ], + "after": { + "name": "prod", + "quota_id": null, + "tags": null + }, + "after_unknown": { + "default": true, + "id": true, + "state": true + }, + "before": null + }, + "mode": "managed", + "name": "demo_group1", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_group", + "values": { + "name": "prod", + "quota_id": null, + "tags": null + } + }, + "policy": "no policy available", + "resource_name": "demo_group1", + "simple_name": "ibm_resource_group.demo_group1", + "svg_id": "node_15", + "time": "no time estimation available", + "type": "ibm_resource_group" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/93cd8038cd994fe29c0646a1ed609032:6ffe0e10-9909-4577-b51b-109fc24580f4::", + "guid": "6ffe0e10-9909-4577-b51b-109fc24580f4", + "id": "crn:v1:bluemix:public:cloud-object-storage:global:a/93cd8038cd994fe29c0646a1ed609032:6ffe0e10-9909-4577-b51b-109fc24580f4::", + "location": "global", + "name": "demo_cos_instance", + "parameters": null, + "plan": "standard", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:cloud-object-storage:global:a/93cd8038cd994fe29c0646a1ed609032:6ffe0e10-9909-4577-b51b-109fc24580f4::", + "resource_group_id": "52f9d499dfdc4db388f4e9094ac93313", + "resource_group_name": "", + "resource_name": "demo_cos_instance", + "resource_status": "active", + "service": "cloud-object-storage", + "service_endpoints": null, + "status": "active", + "tags": [], + "timeouts": null + }, + "depends_on": [ + "ibm_resource_group.demo_group1" + ], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "cos_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "location": [ + "global" + ], + "name": [ + "demo_cos_instance" + ], + "plan": [ + "standard" + ], + "resource_group_id": [ + "${ibm_resource_group.demo_group1.id}" + ], + "service": [ + "cloud-object-storage" + ] + }, + "group": 20000, + "label": "[root] ibm_resource_instance.cos_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.cos_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "global", + "name": "demo_cos_instance", + "parameters": null, + "plan": "standard", + "service": "cloud-object-storage", + "service_endpoints": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_id": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "cos_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "global", + "name": "demo_cos_instance", + "parameters": null, + "plan": "standard", + "service": "cloud-object-storage", + "service_endpoints": null, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "cos_instance", + "simple_name": "ibm_resource_instance.cos_instance", + "svg_id": "node_16", + "time": "no time estimation available", + "type": "ibm_resource_instance" + }, + { + "apply": { + "instances": [ + { + "attributes": { + "crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e::", + "guid": "0948eeee-1252-41a8-80b6-b7797b14ad4e", + "id": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e::", + "location": "us-south", + "name": "demo_KMS_instance", + "parameters": null, + "plan": "tiered-pricing", + "resource_controller_url": "https://cloud.ibm.com/services/", + "resource_crn": "crn:v1:bluemix:public:kms:us-south:a/93cd8038cd994fe29c0646a1ed609032:0948eeee-1252-41a8-80b6-b7797b14ad4e::", + "resource_group_id": "66e101aa10194a809c39227c95aa8e94", + "resource_group_name": "", + "resource_name": "demo_KMS_instance", + "resource_status": "active", + "service": "kms", + "service_endpoints": null, + "status": "active", + "tags": [], + "timeouts": null + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "schema_version": 0 + } + ], + "mode": "managed", + "name": "kp_instance", + "provider": "provider.ibm", + "type": "ibm_resource_instance" + }, + "cluster": "root", + "cost": "no cost available", + "definition": { + "location": [ + "us-south" + ], + "name": [ + "demo_KMS_instance" + ], + "plan": [ + "tiered-pricing" + ], + "service": [ + "kms" + ] + }, + "group": 20000, + "label": "[root] ibm_resource_instance.kp_instance", + "module": "root", + "modules": [ + "root" + ], + "plan": { + "address": "ibm_resource_instance.kp_instance", + "change": { + "actions": [ + "create" + ], + "after": { + "location": "us-south", + "name": "demo_KMS_instance", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "timeouts": null + }, + "after_unknown": { + "crn": true, + "guid": true, + "id": true, + "resource_controller_url": true, + "resource_crn": true, + "resource_group_name": true, + "resource_name": true, + "resource_status": true, + "status": true, + "tags": true + }, + "before": null + }, + "mode": "managed", + "name": "kp_instance", + "provider_name": "ibm", + "schema_version": 0, + "type": "ibm_resource_instance", + "values": { + "location": "us-south", + "name": "demo_KMS_instance", + "parameters": null, + "plan": "tiered-pricing", + "resource_group_id": null, + "service": "kms", + "service_endpoints": null, + "timeouts": null + } + }, + "policy": "no policy available", + "resource_name": "kp_instance", + "simple_name": "ibm_resource_instance.kp_instance", + "svg_id": "node_17", + "time": "no time estimation available", + "type": "ibm_resource_instance" + }, + { + "apply": {}, + "cluster": "root", + "cost": {}, + "definition": "", + "group": 20000, + "label": "[root] root", + "module": "root", + "modules": [ + "root" + ], + "plan": {}, + "policy": {}, + "resource_name": "", + "simple_name": "root", + "svg_id": "node_18", + "time": {}, + "type": "" + } + ], + "totalcost": "269.1 USD", + "totaltime": "" +} \ No newline at end of file diff --git a/npm/example/graphsimple.svg b/npm/example/graphsimple.svg new file mode 100644 index 0000000..d67156c --- /dev/null +++ b/npm/example/graphsimple.svg @@ -0,0 +1,944 @@ + + + + + + + + + +[root] ibm_cis.demo_web_domain + + + +ibm_cis              + + + + +demo_web_domain      + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_resource_group.demo_group1 + + + +ibm_resource_group   + + + + +demo_group1          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_cis.demo_web_domain->[root] ibm_resource_group.demo_group1 + + + + + +[root] ibm_cis_domain.demo_web_domain + + + +ibm_cis_domain       + + + + +demo_web_domain      + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_cis_domain.demo_web_domain->[root] ibm_cis.demo_web_domain + + + + + +[root] ibm_cis_domain_settings.demo_web_domain + + + +ibm_cis_domain_settings + + + + +demo_web_domain      + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_cis_domain_settings.demo_web_domain->[root] ibm_cis_domain.demo_web_domain + + + + + +[root] ibm_container_bind_service.bind_service + + + +ibm_container_bind_service + + + + +bind_service         + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_container_vpc_cluster.cluster + + + +ibm_container_vpc_cluster + + + + +cluster              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +269.1 USD + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_container_bind_service.bind_service->[root] ibm_container_vpc_cluster.cluster + + + + + +[root] ibm_resource_instance.cos_instance + + + +ibm_resource_instance + + + + +cos_instance         + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_container_bind_service.bind_service->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_is_subnet.subnet1 + + + +ibm_is_subnet        + + + + +subnet1              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_container_vpc_cluster.cluster->[root] ibm_is_subnet.subnet1 + + + + + +[root] ibm_container_vpc_cluster.cluster->[root] ibm_resource_group.demo_group1 + + + + + +[root] ibm_cos_bucket.standard-ams03 + + + +ibm_cos_bucket       + + + + +standard-ams03       + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_kp_key.cos_encrypt + + + +ibm_kp_key           + + + + +cos_encrypt          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_cos_bucket.standard-ams03->[root] ibm_kp_key.cos_encrypt + + + + + +[root] ibm_cos_bucket.standard-ams03->[root] ibm_resource_instance.cos_instance + + + + + +[root] ibm_iam_authorization_policy.policy + + + +ibm_iam_authorization_policy + + + + +policy               + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_service_id.serviceID + + + +ibm_iam_service_id   + + + + +serviceID            + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_service_policy.policy + + + +ibm_iam_service_policy + + + + +policy               + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_service_policy.policy->[root] ibm_iam_service_id.serviceID + + + + + +[root] ibm_iam_user_policy.policy1 + + + +ibm_iam_user_policy + + + + +policy1              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_iam_user_policy.policy2 + + + +ibm_iam_user_policy + + + + +policy2              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_vpc.vpc1 + + + +ibm_is_vpc           + + + + +vpc1                 + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_subnet.subnet1->[root] ibm_is_vpc.vpc1 + + + + + +[root] ibm_is_subnet.subnet2 + + + +ibm_is_subnet        + + + + +subnet2              + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +0 USD      + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_is_subnet.subnet2->[root] ibm_is_vpc.vpc1 + + + + + +[root] ibm_resource_instance.kp_instance + + + +ibm_resource_instance + + + + +kp_instance          + + + + +>_terraform plan           + + + + + +>_controls verify           + + + + + +>_estimate cost            + +N/A        + + + +>_estimate time            + + + + + +>_terraform apply          + + + + + +[root] ibm_kp_key.cos_encrypt->[root] ibm_resource_instance.kp_instance + + + + + +[root] ibm_resource_instance.cos_instance->[root] ibm_resource_group.demo_group1 + + + + + +[root] root + +[root] root + +269.1 USD + + + +[root] root->[root] ibm_cis_domain_settings.demo_web_domain + + + + + +[root] root->[root] ibm_container_bind_service.bind_service + + + + + +[root] root->[root] ibm_cos_bucket.standard-ams03 + + + + + +[root] root->[root] ibm_iam_authorization_policy.policy + + + + + +[root] root->[root] ibm_iam_service_policy.policy + + + + + +[root] root->[root] ibm_iam_user_policy.policy1 + + + + + +[root] root->[root] ibm_iam_user_policy.policy2 + + + + + +[root] root->[root] ibm_is_subnet.subnet2 + + + + + diff --git a/npm/example/index.html b/npm/example/index.html index b23953f..d0311c8 100644 --- a/npm/example/index.html +++ b/npm/example/index.html @@ -4,10 +4,14 @@ Blast Radius (Terraform Graph Tools) + + + +

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 literal 0 HcmV?d00001 diff --git a/doc/blastradiusextdemo.png b/doc/blastradiusextdemo.png new file mode 100644 index 0000000000000000000000000000000000000000..9f13be8cb5a8eae3d7094c02d3b8e72c3b90105f GIT binary patch literal 394383 zcma%i1yo#1vo0DSxVr}lHn=m8009yt1b4UKuERiZ4@n5l5FkK;ySofdfZ*=Vpo0!P z&i~(g&&hrNTkFl*v(}#8UAwxgx~r?cs)>55s(|~H>M0Tu60VY>+&d&Bj3Xo@Gyvw4 z#}+XjXf6^Gj)I-6>{}&SS%$Z6&enDgR!B&SQAs)&x*GjtSqATvY=bcsv0AX06qAWw z#xO8wl@orFc^SpX7&((D0cW2YCtnu6lZ{_fg?iyxWN=SQjM- zk8(|>HIgkzlxU66*LUIz#T;@(Y?)8xeMc%^cmKK-u9+t{2V+F^=D6Wf>_ZjpgTbjA zX$arJN_LcG;>kdo*>dT&a?Cq(s&1)Iu_?Nd7mR^yWQ7NeuYNGeTYj3O6WSaUE4K;4 zsz?tar$VoI-o5&1A;mTh$gDv#5=K!AFBF@5FTV?ls9Gdwgf$SpZXxZ?KkY<|1JLOrk>{n+ zCnS<}v-~{k7O3>KSpR*!BF{kOBExQqj7~#oO4avdtu`y4?n*_97|%!MNo5d0y{%vf z-SeN6Sk0_K=Evl6FB#}hvDJs4zF_1c?WKek8hn&DLf~w9y9;j2;{7iQ2 zQ-^FJA(%W9-+eetR_wAR9#?3LD$e|4@^=ASB^>5(BIc-7IfVr@{BFdFtq*Q^7wu&S z2%`#NuI3}R!?3_+$ml`jq)ZC<2-3jEjz!JneOaHs6S#zp$S+ZOMS%Hg;o~4ws zpiP|N0BXpYRss4k-9-sYE#`bgW@o&aO?ikev8kCtx%Gjhmts_e_L%G>2URRt*#H~H zX=GarbfR0+>)nwyZ0ZoME~Uf3^{$m3*(S{+TsebG-K1~r^;Ide?vc}x6B7G_ z!tb&lI?9s|sGX9x^2uNlq-FlXp_`m_Jye$!LZny`6OSpt>UsrDknCYVSn=DEt|W4l zY!uonIZ9M_Q(PKTsiSu6s}NIyC%qqZKVrV?AepfuG#usUr5!>!d-0qdW3YqjExPcB zVN;12bod8W7XlhoaFBa8ts!#V%HA%@s0_dd^@b3Qk_hFF8+7%+d51;$S ztWN(W?$x)b9ZNy%VTG76B9G_#QBye*W3SFB{P0>nc;$@#0^*qJQxI2m8}ib}hV+=* z>9VqRZJAo>qHD(pnQ|X{w}yI}OU?LaL<+c&9iiyBJj)6_I|&HDYeg&TtXq$}!nz|0 z#E11r6YrpDd=ThJXlGGouq4bUevL&MS`vx~{d{b<$JES76s4RaHAW4L`_b*Nro2Y9 z=C|gwrf!aLf?Sax$3*!#LkT%gmncC~hJ&Sq`S2MnqtP?Z#HGZVJ~B&hH&L-TE=B-@ z&PVT$_@4ov=s({+ZzM5@rf2!els%NqmFw`W`Yq4fMs|dz)K4j)pfttd{E-6fchrS! zKk9yzRaaLRR|nMe+DFxF*=fB$91}0`RNI$Qfo#dG|6&~@ss3K=Se;ujuD|vi>2fFLM3#+D_E1ffR42ByXzCV0*7&ABO$u3?i?vVLhyhof={MLhK=X~d# z$DxNXY7b zYZr=u-j}^(y-Kf=k;mGXg6uy!zI7@e%pT63e!J{aZB}WPXjZez*rm$aTW#T%+Aw4_ z)G|~wgx@t3UJ-#6!A&>Cd$3ks_o^%ILtN-9t5;2Nr4%4uYsv`9ZHh8pC;nE859y+* zu_CEXl^q*-N~10ztM^^kU4!8;+Q11CAy57|kxaYB+4E*QNNR&#XzFi=%vskeI`@3v za^KqP_h(&Oi)1)4GT0S8?_-$B)bzr+ggKM7`o%l;Y6NRyt2K3MHAASL&PA z%Yzt13Sr!6nLm-@2o zO&m;|!SlgK1REb=Z}(kh6L)sjQ`YO3Di*OkPd$jlv?PpNUS+mq^o;ChO1vU?brt_H zwvg6!IBcua>$%4d?}qIGk2o)*mAQ?ZfV|