| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| type HierarchyRelatedService { |
| # The related service ID. |
| id: ID! |
| # The literal name of the #id. |
| name: String! |
| # The related service's Layer name. |
| layer: String! |
| normal: Boolean! |
| } |
| |
| type HierarchyRelatedInstance { |
| # The related instance ID. |
| id: ID! |
| # The literal name of the #id. Instance Name. |
| name: String! |
| # Service id |
| serviceId: ID! |
| # The literal name of the #serviceId. |
| serviceName: String! |
| # The service's Layer name. |
| # Service could have multiple layers, this is the layer of the service that the instance belongs to. |
| layer: String! |
| normal: Boolean! |
| } |
| |
| type HierarchyServiceRelation { |
| upperService: HierarchyRelatedService! |
| lowerService: HierarchyRelatedService! |
| } |
| |
| type HierarchyInstanceRelation { |
| upperInstance: HierarchyRelatedInstance! |
| lowerInstance: HierarchyRelatedInstance! |
| } |
| |
| type ServiceHierarchy { |
| relations: [HierarchyServiceRelation!]! |
| } |
| |
| type InstanceHierarchy { |
| relations: [HierarchyInstanceRelation!]! |
| } |
| |
| type LayerLevel { |
| # The layer name. |
| layer: String! |
| # The layer level. |
| # The level of the upper service should greater than the level of the lower service. |
| level: Int! |
| } |
| |
| extend type Query { |
| # Query the service hierarchy, based on the given service. Will recursively return all related layers services in the hierarchy. |
| getServiceHierarchy(serviceId: ID!, layer: String!): ServiceHierarchy! |
| # Query the instance hierarchy, based on the given instance. Will return all direct related layers instances in the hierarchy, no recursive. |
| getInstanceHierarchy(instanceId: ID!, layer: String!): InstanceHierarchy! |
| # List layer hierarchy levels. The layer levels are defined in the `hierarchy-definition.yml`. |
| listLayerLevels: [LayerLevel!]! |
| } |