.. Copyright (C) 2019 IBM.
Resource Source
----------------
+===============
.. toctree::
:maxdepth: 4
Input:
-======
+------
Expects the value to be provided as input to the request.
.. code-block:: json
}
Default:
-========
+--------
Expects the value to be defaulted in the model itself.
.. code-block:: json
}
Sql:
-====
+----
Expects the SQL query to be modeled; that SQL query can be parameterized, and the parameters be other resources resolved through other means. If that's the case, this data dictionary definition will have to define key-dependencies along with input-key-mapping.
.. code-block:: json
:linenos:
- {
+ {
"description": "This is Database Resource Source Node Type",
"version": "1.0.0",
"properties": {
}
},
"derived_from": "tosca.nodes.ResourceSource"
- }
+ }
Connection to a specific database can be expressed through the endpoint-selector property, which refers to a macro defining the information about the database the connect to. Understand TOSCA Macro in the context of CDS.
}
Rest:
-=====
+-----
Expects the URI along with the VERB and the payload, if needed.
.. code-block:: json
:linenos:
- {
+ {
"description": "This is Rest Resource Source Node Type",
"version": "1.0.0",
"properties": {
}
},
"derived_from": "tosca.nodes.ResourceSource"
- }
+ }
Connection to a specific REST system can be expressed through the endpoint-selector property, which refers to a macro defining the information about the REST system the connect to. Understand TOSCA Macro in the context of CDS.
}
Capability:
-===========
+-----------
Expects a script to be provided.
.. code-block:: json
:linenos:
- {
+ {
"description": "This is Component Resource Source Node Type",
"version": "1.0.0",
"properties": {
}
},
"derived_from": "tosca.nodes.ResourceSource"
- }
+ }
Complex Type:
-=============
+-------------
Value will be resolved through REST., and output will be a complex type.
.. code-block:: json
:linenos:
- {
+ {
"id": 4,
"address": "192.168.10.2/32",
"vrf": null,
"nat_inside": null,
"created": "2018-08-30",
"last_updated": "2018-08-30T14:59:05.277820Z"
- }
+ }
What is of interest is the address and id fields. For the process to return these two values, we need to create a custom data-type, as bellow
.. code-block:: json
- {
- "tags" : "oam-local-ipv4-address",
- "name" : "create_netbox_ip",
- "property" : {
- "description" : "netbox ip",
- "type" : "dt-netbox-ip"
- },
- "updated-by" : "adetalhouet",
- "sources" : {
- "config-data" : {
- "type" : "source-rest",
- "properties" : {
- "type" : "JSON",
- "verb" : "POST",
- "endpoint-selector" : "ipam-1",
- "url-path" : "/api/ipam/prefixes/$prefixId/available-ips/",
- "path" : "",
- "input-key-mapping" : {
- "prefixId" : "prefix-id"
- },
- "output-key-mapping" : {
- "address" : "address",
- "id" : "id"
- },
- "key-dependencies" : [ "prefix-id" ]
- }
- }
- }
- }
\ No newline at end of file
+ {
+ "tags" : "oam-local-ipv4-address",
+ "name" : "create_netbox_ip",
+ "property" : {
+ "description" : "netbox ip",
+ "type" : "dt-netbox-ip"
+ },
+ "updated-by" : "adetalhouet",
+ "sources" : {
+ "config-data" : {
+ "type" : "source-rest",
+ "properties" : {
+ "type" : "JSON",
+ "verb" : "POST",
+ "endpoint-selector" : "ipam-1",
+ "url-path" : "/api/ipam/prefixes/$prefixId/available-ips/",
+ "path" : "",
+ "input-key-mapping" : {
+ "prefixId" : "prefix-id"
+ },
+ "output-key-mapping" : {
+ "address" : "address",
+ "id" : "id"
+ },
+ "key-dependencies" : [ "prefix-id" ]
+ }
+ }
+ }
+ }
\ No newline at end of file