...
To execute a DSL query, a client will perform a PUT on the dsl endpoint and include a payload that includes the dsl query to be run. The version dictates which release's REST API version the output will be based on.
An AID for these custom queries is available on our AID page.
PUT /aai/v$/dsl?format={format}
|
...
Expand |
---|
{
"results" : [
{
"complex" : {
"physical-location-id" : "complex5349-06" ,
"complex-name" : "complexsa-test" ,
"resource-version" : "1485403105490" ,
"physical-location-type" : "Example Location" ,
"street1" : "123 Example Street" ,
"city" : "Example" ,
"state" : "NJ" ,
"postal-code" : "12345" ,
"country" : "USA" ,
"region" : "USA" ,
"latitude" : "30.395968" ,
"longitude" : "-84.135344" ,
"relationship-list" : {
"relationship" : [
{
"related-to" : "pserver" ,
"related-link" : "https://aai.onap:8443/aai/v16/cloud-infrastructure/pservers/pserver/pserver5349-06" ,
"relationship-data" : [
{
"relationship-key" : "pserver.hostname" ,
"relationship-value" : "pserver5349-06"
}
],
"related-to-property" : [
{
"property-key" : "pserver.pserver-name2"
}
]
}
]
}
}
},...]
}
|
|
...
Expand |
---|
{
"results" : [
{
"url" : "https://aai.onap:8443/aai/v16/cloud-infrastructure/complexes/complex/EXAMPLEEXAMPLE_COMPLEX_ID" ,
"complex" : {
"physical-location-id" : "EXAMPLE_COMPLEX_ID" ,
"complex-name" : "Example" ,
"resource-version" : "1486837035912" ,
"physical-location-type" : "" ,
"street1" : "123 Mule St" ,
"city" : "MOSCOW" ,
"state" : "RU" ,
"postal-code" : "0" ,
"country" : "RUS" ,
"region" : "EMEA"
}
},...]
}
|
|
...
Expand |
---|
{
"results" : [
{
"id" : "739696712" ,
"node-type" : "generic-vnf" ,
"url" : "https://aai.onap:8443/aai/v16/network/generic-vnfs/generic-vnf/85f60b5e-6eff-49c8-9a79-550ee9eb4806" ,
"properties" : {
"vnf-type" : "WX" ,
"service-id" : "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4" ,
"equipment-role" : "UCPE" ,
"orchestration-status" : "created" ,
"management-option" : "ONAP" ,
"ipv4-oam-address" : "10.12.14.16" ,
"ipv4-loopback0-address" : "18.20.22.24" ,
"nm-lan-v6-address" : "2001:1890:e00e:fffe::1:2806" ,
"management-v6-address" : "2001:1890:e00e:fffd::773" ,
"vcpu" : 4 ,
"vmemory" : 8 ,
"vmemory-units" : "GB" ,
"vdisk" : 150 ,
"vdisk-units" : "GB" ,
"in-maint" : false ,
"is-closed-loop-disabled" : false ,
"resource-version" : "1499958805125" ,
"vnf-id" : "85f60b5e-6eff-49c8-9a79-550ee9eb4806" ,
"vnf-name" : "VNF_NAME"
},
"related-to" : [
{
"id" : "739700808" ,
"node-type" : "license" ,
"url" : "https://aai.onap:8443/aai/v16/network/generic-vnfs/generic-vnf/85f60b5e-6eff-49c8-9a79-550ee9eb4806/licenses/license/EXAMPLEEXAMPLE_LICENSE"
},
{
"id" : "411750576" ,
"node-type" : "service-instance" ,
"url" : "https://aai.onap:8443/aai/v16/business/customers/customer/EXAMPLE_CUSTOMER/service-subscriptions/service-subscription/EXAMPLE_SERVICE_SUBSCRIPTION/service-instances/service-instance/EXAMPLEEXAMPLE_SERVICE_INSTANCE"
},
{
"id" : "15372328" ,
"node-type" : "vnf-image" ,
"url" : "https://aai.onap:8443/aai/v16/service-design-and-creation/vnf-images/vnf-image/78252548-efb6-4b42-9cf7-2b3900c5e7e2"
},
{
"id" : "700920024" ,
"node-type" : "vserver" ,
"url" : "https://aai.onap:8443/aai/v16/cloud-infrastructure/cloud-regions/cloud-region/Cloudy/McCloudface/tenants/tenant/EXAMPLE_TENANT/vservers/vserver/EXAMPLE_VSERVER"
}
]
}
]
}
|
|
...
Expand |
---|
Let's say you got back a large tree of output in the simple format and need to go through the list of objects to understand their relationships. For example, the output returned vnfs, vservers, pservers and complexes but you want to only look at the results of a particular complex. First, we'll find the JSON object for the complex by looking at the result objects for one with "node-type": "complex" and "physical-location-id": (the CLLI of the location you want to filter on) within the "properties" object. Next you would check the "related-to" object array for objects with "node-type": "pserver", take the "id"s and search for objects with those IDs in the results object array. You can keep crawling through the results in this way until you reach the objects you need. You can use this method for any property you want to filter on. {
"results" : [
...,
{
"id" : "14147624" ,
"node-type" : "complex" ,
"url" : "https://aai.onap:8443/aai/v16/cloud-infrastructure/complexes/complex/EXAMPLEEXAMPLE_COMPLEX_ID" ,
"properties" : {
...
"physical-location-id" : "STLSMO0901EXAMPLE_COMPLEX_ID" ,
...
},
"related-to" : [
{
"id" : "2134056" ,
"node-type" : "pserver" ,
"url" : "https://aai.onap:8443/aai/v16/cloud-infrastructure/pservers/pserver/EXAMPLE_PSERVER"
},
{
"id" : "2158632" ,
"node-type" : "pserver" ,
"url" : "https://aai.onap:8443/aai/v16/cloud-infrastructure/pservers/pserver/EXAMPLE_PSERVER2"
},...
]
},...
]
}
|
|
...
Symbol | Examples | Description |
---|
[] | [node1, node2] | Used for creating a union between nodes. |
() | node('property','filter') node(> node-filter) | Used for filtering the current node. Can be used with properties or filtering by related nodes, and multiple filters can be applied at once. |
* | node* node*('property','filter') | Used to return the current node, assuming it meets any filters. |
> | node1 > node2 | Used to traverse between nodes |
...
NODE( 'key1' , 'value1' ) > [ NODE2*(>NODE3( 'key3' , 'value3' )), NODE3*]
{
"dsl" : "customer> service-subscription('service-type','example-service-type') > [ service-instance(> generic-vnf*('vnf-type','example-vnf-type')('model-version-id-local','1.0') ) , tennanttenant*]"
}
Give me service-instances and tenant related to the given service-subscription
|
...