diff options
Diffstat (limited to 'docs/xacml/swagger.json')
-rw-r--r-- | docs/xacml/swagger.json | 1108 |
1 files changed, 0 insertions, 1108 deletions
diff --git a/docs/xacml/swagger.json b/docs/xacml/swagger.json deleted file mode 100644 index 1588765d..00000000 --- a/docs/xacml/swagger.json +++ /dev/null @@ -1,1108 +0,0 @@ -{ - "swagger" : "2.0", - "info" : { - "description" : "Policy Xacml PDP Service", - "version" : "Swagger Server", - "title" : "Policy Xacml PDP Service", - "x-component" : "Policy Framework", - "x-planned-retirement-date" : "tbd" - }, - "host" : "policy-xacml-pdp:6969", - "basePath" : "/", - "tags" : [ { - "name" : "HealthCheck" - }, { - "name" : "Decision" - }, { - "name" : "Statistics" - } ], - "schemes" : [ "http", "https" ], - "paths" : { - "/policy/pdpx/v1/healthcheck" : { - "get" : { - "tags" : [ "HealthCheck" ], - "summary" : "Perform a system healthcheck", - "description" : "Provides healthy status of the Policy Xacml PDP component", - "operationId" : "healthcheck", - "consumes" : [ "application/json", "application/yaml" ], - "produces" : [ "application/json", "application/yaml" ], - "parameters" : [ { - "name" : "X-ONAP-RequestID", - "in" : "header", - "description" : "RequestID for http transaction", - "required" : false, - "type" : "string", - "format" : "uuid" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "headers" : { - "X-MinorVersion" : { - "type" : "string", - "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client" - }, - "X-PatchVersion" : { - "type" : "string", - "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request" - }, - "X-LatestVersion" : { - "type" : "string", - "description" : "Used only to communicate an API's latest version" - }, - "X-ONAP-RequestID" : { - "type" : "string", - "format" : "uuid", - "description" : "Used to track REST transactions for logging purpose" - } - }, - "schema" : { - "$ref" : "#/definitions/HealthCheckReport" - } - }, - "401" : { - "description" : "Authentication Error" - }, - "403" : { - "description" : "Authorization Error" - }, - "500" : { - "description" : "Internal Server Error" - } - }, - "security" : [ { - "basicAuth" : [ ] - } ], - "x-interface info" : { - "last-mod-release" : "Dublin", - "pdpx-version" : "1.0.0" - } - } - }, - "/policy/pdpx/v1/xacml" : { - "post" : { - "tags" : [ "Decision" ], - "summary" : "Fetch the decision using specified decision parameters", - "description" : "Returns the policy decision from Policy Xacml PDP", - "operationId" : "xacml", - "consumes" : [ "application/xacml+json", "application/xacml+xml" ], - "produces" : [ "application/xacml+json", "application/xacml+xml" ], - "parameters" : [ { - "in" : "body", - "name" : "body", - "required" : false, - "schema" : { - "$ref" : "#/definitions/Request" - } - }, { - "name" : "X-ONAP-RequestID", - "in" : "header", - "description" : "RequestID for http transaction", - "required" : false, - "type" : "string", - "format" : "uuid" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "headers" : { - "X-MinorVersion" : { - "type" : "string", - "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client" - }, - "X-PatchVersion" : { - "type" : "string", - "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request" - }, - "X-LatestVersion" : { - "type" : "string", - "description" : "Used only to communicate an API's latest version" - }, - "X-ONAP-RequestID" : { - "type" : "string", - "format" : "uuid", - "description" : "Used to track REST transactions for logging purpose" - } - }, - "schema" : { - "$ref" : "#/definitions/Response" - } - }, - "400" : { - "description" : "Bad Request", - "schema" : { - "$ref" : "#/definitions/ErrorResponse" - } - }, - "401" : { - "description" : "Authentication Error" - }, - "403" : { - "description" : "Authorization Error" - }, - "500" : { - "description" : "Internal Server Error" - } - }, - "security" : [ { - "basicAuth" : [ ] - } ], - "x-interface info" : { - "last-mod-release" : "Frankfurt", - "pdpx-version" : "1.0.0" - } - } - }, - "/policy/pdpx/v1/statistics" : { - "get" : { - "tags" : [ "Statistics" ], - "summary" : "Fetch current statistics", - "description" : "Provides current statistics of the Policy Xacml PDP component", - "operationId" : "statistics", - "consumes" : [ "application/json", "application/yaml" ], - "produces" : [ "application/json", "application/yaml" ], - "parameters" : [ { - "name" : "X-ONAP-RequestID", - "in" : "header", - "description" : "RequestID for http transaction", - "required" : false, - "type" : "string", - "format" : "uuid" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "headers" : { - "X-MinorVersion" : { - "type" : "string", - "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client" - }, - "X-PatchVersion" : { - "type" : "string", - "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request" - }, - "X-LatestVersion" : { - "type" : "string", - "description" : "Used only to communicate an API's latest version" - }, - "X-ONAP-RequestID" : { - "type" : "string", - "format" : "uuid", - "description" : "Used to track REST transactions for logging purpose" - } - }, - "schema" : { - "$ref" : "#/definitions/StatisticsReport" - } - }, - "401" : { - "description" : "Authentication Error" - }, - "403" : { - "description" : "Authorization Error" - }, - "500" : { - "description" : "Internal Server Error" - } - }, - "security" : [ { - "basicAuth" : [ ] - } ], - "x-interface info" : { - "last-mod-release" : "Dublin", - "pdpx-version" : "1.0.0" - } - } - }, - "/policy/pdpx/v1/decision" : { - "post" : { - "tags" : [ "Decision" ], - "summary" : "Fetch the decision using specified decision parameters", - "description" : "Returns the policy decision from Policy Xacml PDP", - "operationId" : "decision", - "consumes" : [ "application/json", "application/yaml" ], - "produces" : [ "application/json", "application/yaml" ], - "parameters" : [ { - "in" : "body", - "name" : "body", - "required" : false, - "schema" : { - "$ref" : "#/definitions/DecisionRequest" - } - }, { - "name" : "X-ONAP-RequestID", - "in" : "header", - "description" : "RequestID for http transaction", - "required" : false, - "type" : "string", - "format" : "uuid" - } ], - "responses" : { - "200" : { - "description" : "successful operation", - "headers" : { - "X-MinorVersion" : { - "type" : "string", - "description" : "Used to request or communicate a MINOR version back from the client to the server, and from the server back to the client" - }, - "X-PatchVersion" : { - "type" : "string", - "description" : "Used only to communicate a PATCH version in a response for troubleshooting purposes only, and will not be provided by the client on request" - }, - "X-LatestVersion" : { - "type" : "string", - "description" : "Used only to communicate an API's latest version" - }, - "X-ONAP-RequestID" : { - "type" : "string", - "format" : "uuid", - "description" : "Used to track REST transactions for logging purpose" - } - }, - "schema" : { - "$ref" : "#/definitions/DecisionResponse" - } - }, - "400" : { - "description" : "Bad Request", - "schema" : { - "$ref" : "#/definitions/ErrorResponse" - } - }, - "401" : { - "description" : "Authentication Error" - }, - "403" : { - "description" : "Authorization Error" - }, - "500" : { - "description" : "Internal Server Error" - } - }, - "security" : [ { - "basicAuth" : [ ] - } ], - "x-interface info" : { - "last-mod-release" : "Dublin", - "pdpx-version" : "1.0.0" - } - } - } - }, - "securityDefinitions" : { - "basicAuth" : { - "description" : "", - "type" : "basic" - } - }, - "definitions" : { - "HealthCheckReport" : { - "type" : "object", - "properties" : { - "name" : { - "type" : "string" - }, - "url" : { - "type" : "string" - }, - "healthy" : { - "type" : "boolean" - }, - "code" : { - "type" : "integer", - "format" : "int32" - }, - "message" : { - "type" : "string" - } - } - }, - "Advice" : { - "type" : "object", - "properties" : { - "attributeAssignments" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeAssignment" - } - }, - "id" : { - "$ref" : "#/definitions/Identifier" - } - } - }, - "Attribute" : { - "type" : "object", - "properties" : { - "attributeId" : { - "$ref" : "#/definitions/Identifier" - }, - "values" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeValueObject" - } - }, - "category" : { - "$ref" : "#/definitions/Identifier" - }, - "issuer" : { - "type" : "string" - }, - "includeInResults" : { - "type" : "boolean" - } - } - }, - "AttributeAssignment" : { - "type" : "object", - "properties" : { - "attributeValue" : { - "$ref" : "#/definitions/AttributeValueObject" - }, - "attributeId" : { - "$ref" : "#/definitions/Identifier" - }, - "category" : { - "$ref" : "#/definitions/Identifier" - }, - "issuer" : { - "type" : "string" - }, - "dataTypeId" : { - "$ref" : "#/definitions/Identifier" - } - } - }, - "AttributeCategory" : { - "type" : "object", - "properties" : { - "category" : { - "$ref" : "#/definitions/Identifier" - }, - "attributes" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/Attribute" - } - } - } - }, - "AttributeValue" : { - "type" : "object", - "properties" : { - "xpathCategory" : { - "$ref" : "#/definitions/Identifier" - }, - "dataTypeId" : { - "$ref" : "#/definitions/Identifier" - }, - "value" : { - "type" : "object" - } - } - }, - "AttributeValueObject" : { - "type" : "object", - "properties" : { - "xpathCategory" : { - "$ref" : "#/definitions/Identifier" - }, - "dataTypeId" : { - "$ref" : "#/definitions/Identifier" - }, - "value" : { - "type" : "object" - } - } - }, - "IdReference" : { - "type" : "object", - "properties" : { - "version" : { - "$ref" : "#/definitions/Version" - }, - "id" : { - "$ref" : "#/definitions/Identifier" - } - } - }, - "Identifier" : { - "type" : "object", - "properties" : { - "uri" : { - "type" : "string", - "format" : "uri" - } - } - }, - "MissingAttributeDetail" : { - "type" : "object", - "properties" : { - "attributeId" : { - "$ref" : "#/definitions/Identifier" - }, - "category" : { - "$ref" : "#/definitions/Identifier" - }, - "issuer" : { - "type" : "string" - }, - "attributeValues" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeValueObject" - } - }, - "dataTypeId" : { - "$ref" : "#/definitions/Identifier" - } - } - }, - "Obligation" : { - "type" : "object", - "properties" : { - "attributeAssignments" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeAssignment" - } - }, - "id" : { - "$ref" : "#/definitions/Identifier" - } - } - }, - "Response" : { - "type" : "object", - "properties" : { - "results" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/Result" - } - } - } - }, - "Result" : { - "type" : "object", - "properties" : { - "status" : { - "$ref" : "#/definitions/Status" - }, - "decision" : { - "type" : "string", - "enum" : [ "PERMIT", "DENY", "INDETERMINATE", "INDETERMINATE_PERMIT", "INDETERMINATE_DENY", "INDETERMINATE_DENYPERMIT", "NOTAPPLICABLE" ] - }, - "associatedAdvice" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/Advice" - } - }, - "obligations" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/Obligation" - } - }, - "policyIdentifiers" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/IdReference" - } - }, - "policySetIdentifiers" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/IdReference" - } - }, - "attributes" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeCategory" - } - } - } - }, - "Status" : { - "type" : "object", - "properties" : { - "statusCode" : { - "$ref" : "#/definitions/StatusCode" - }, - "statusMessage" : { - "type" : "string" - }, - "statusDetail" : { - "$ref" : "#/definitions/StatusDetail" - }, - "ok" : { - "type" : "boolean" - } - } - }, - "StatusCode" : { - "type" : "object", - "properties" : { - "statusCodeValue" : { - "$ref" : "#/definitions/Identifier" - }, - "child" : { - "$ref" : "#/definitions/StatusCode" - } - } - }, - "StatusDetail" : { - "type" : "object", - "properties" : { - "missingAttributeDetails" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/MissingAttributeDetail" - } - } - } - }, - "Version" : { - "type" : "object", - "properties" : { - "version" : { - "type" : "string" - }, - "versionDigits" : { - "type" : "array", - "items" : { - "type" : "integer", - "format" : "int32" - } - } - } - }, - "ErrorResponse" : { - "type" : "object", - "properties" : { - "responseCode" : { - "type" : "string", - "enum" : [ "OK", "CREATED", "ACCEPTED", "NO_CONTENT", "RESET_CONTENT", "PARTIAL_CONTENT", "MOVED_PERMANENTLY", "FOUND", "SEE_OTHER", "NOT_MODIFIED", "USE_PROXY", "TEMPORARY_REDIRECT", "BAD_REQUEST", "UNAUTHORIZED", "PAYMENT_REQUIRED", "FORBIDDEN", "NOT_FOUND", "METHOD_NOT_ALLOWED", "NOT_ACCEPTABLE", "PROXY_AUTHENTICATION_REQUIRED", "REQUEST_TIMEOUT", "CONFLICT", "GONE", "LENGTH_REQUIRED", "PRECONDITION_FAILED", "REQUEST_ENTITY_TOO_LARGE", "REQUEST_URI_TOO_LONG", "UNSUPPORTED_MEDIA_TYPE", "REQUESTED_RANGE_NOT_SATISFIABLE", "EXPECTATION_FAILED", "PRECONDITION_REQUIRED", "TOO_MANY_REQUESTS", "REQUEST_HEADER_FIELDS_TOO_LARGE", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "BAD_GATEWAY", "SERVICE_UNAVAILABLE", "GATEWAY_TIMEOUT", "HTTP_VERSION_NOT_SUPPORTED", "NETWORK_AUTHENTICATION_REQUIRED" ] - }, - "errorMessage" : { - "type" : "string" - }, - "errorDetails" : { - "type" : "array", - "items" : { - "type" : "string" - } - }, - "warningDetails" : { - "type" : "array", - "items" : { - "type" : "string" - } - } - } - }, - "DOMConfiguration" : { - "type" : "object", - "properties" : { - "parameterNames" : { - "$ref" : "#/definitions/DOMStringList" - } - } - }, - "DOMImplementation" : { - "type" : "object" - }, - "DOMStringList" : { - "type" : "object", - "properties" : { - "length" : { - "type" : "integer", - "format" : "int32" - } - } - }, - "Document" : { - "type" : "object", - "properties" : { - "documentElement" : { - "$ref" : "#/definitions/Element" - }, - "xmlVersion" : { - "type" : "string" - }, - "strictErrorChecking" : { - "type" : "boolean" - }, - "documentURI" : { - "type" : "string" - }, - "xmlStandalone" : { - "type" : "boolean" - }, - "implementation" : { - "$ref" : "#/definitions/DOMImplementation" - }, - "doctype" : { - "$ref" : "#/definitions/DocumentType" - }, - "inputEncoding" : { - "type" : "string" - }, - "xmlEncoding" : { - "type" : "string" - }, - "domConfig" : { - "$ref" : "#/definitions/DOMConfiguration" - }, - "localName" : { - "type" : "string" - }, - "prefix" : { - "type" : "string" - }, - "nodeValue" : { - "type" : "string" - }, - "ownerDocument" : { - "$ref" : "#/definitions/Document" - }, - "nodeName" : { - "type" : "string" - }, - "childNodes" : { - "$ref" : "#/definitions/NodeList" - }, - "nodeType" : { - "type" : "integer", - "format" : "int32" - }, - "namespaceURI" : { - "type" : "string" - }, - "lastChild" : { - "$ref" : "#/definitions/Node" - }, - "parentNode" : { - "$ref" : "#/definitions/Node" - }, - "firstChild" : { - "$ref" : "#/definitions/Node" - }, - "nextSibling" : { - "$ref" : "#/definitions/Node" - }, - "previousSibling" : { - "$ref" : "#/definitions/Node" - }, - "baseURI" : { - "type" : "string" - }, - "textContent" : { - "type" : "string" - }, - "attributes" : { - "$ref" : "#/definitions/NamedNodeMap" - } - } - }, - "DocumentType" : { - "type" : "object", - "properties" : { - "entities" : { - "$ref" : "#/definitions/NamedNodeMap" - }, - "publicId" : { - "type" : "string" - }, - "systemId" : { - "type" : "string" - }, - "notations" : { - "$ref" : "#/definitions/NamedNodeMap" - }, - "internalSubset" : { - "type" : "string" - }, - "name" : { - "type" : "string" - }, - "localName" : { - "type" : "string" - }, - "prefix" : { - "type" : "string" - }, - "nodeValue" : { - "type" : "string" - }, - "ownerDocument" : { - "$ref" : "#/definitions/Document" - }, - "nodeName" : { - "type" : "string" - }, - "childNodes" : { - "$ref" : "#/definitions/NodeList" - }, - "nodeType" : { - "type" : "integer", - "format" : "int32" - }, - "namespaceURI" : { - "type" : "string" - }, - "lastChild" : { - "$ref" : "#/definitions/Node" - }, - "parentNode" : { - "$ref" : "#/definitions/Node" - }, - "firstChild" : { - "$ref" : "#/definitions/Node" - }, - "nextSibling" : { - "$ref" : "#/definitions/Node" - }, - "previousSibling" : { - "$ref" : "#/definitions/Node" - }, - "baseURI" : { - "type" : "string" - }, - "textContent" : { - "type" : "string" - }, - "attributes" : { - "$ref" : "#/definitions/NamedNodeMap" - } - } - }, - "Element" : { - "type" : "object", - "properties" : { - "tagName" : { - "type" : "string" - }, - "schemaTypeInfo" : { - "$ref" : "#/definitions/TypeInfo" - }, - "localName" : { - "type" : "string" - }, - "prefix" : { - "type" : "string" - }, - "nodeValue" : { - "type" : "string" - }, - "ownerDocument" : { - "$ref" : "#/definitions/Document" - }, - "nodeName" : { - "type" : "string" - }, - "childNodes" : { - "$ref" : "#/definitions/NodeList" - }, - "nodeType" : { - "type" : "integer", - "format" : "int32" - }, - "namespaceURI" : { - "type" : "string" - }, - "lastChild" : { - "$ref" : "#/definitions/Node" - }, - "parentNode" : { - "$ref" : "#/definitions/Node" - }, - "firstChild" : { - "$ref" : "#/definitions/Node" - }, - "nextSibling" : { - "$ref" : "#/definitions/Node" - }, - "previousSibling" : { - "$ref" : "#/definitions/Node" - }, - "baseURI" : { - "type" : "string" - }, - "textContent" : { - "type" : "string" - }, - "attributes" : { - "$ref" : "#/definitions/NamedNodeMap" - } - } - }, - "NamedNodeMap" : { - "type" : "object", - "properties" : { - "length" : { - "type" : "integer", - "format" : "int32" - } - } - }, - "Node" : { - "type" : "object", - "properties" : { - "localName" : { - "type" : "string" - }, - "prefix" : { - "type" : "string" - }, - "nodeValue" : { - "type" : "string" - }, - "ownerDocument" : { - "$ref" : "#/definitions/Document" - }, - "nodeName" : { - "type" : "string" - }, - "childNodes" : { - "$ref" : "#/definitions/NodeList" - }, - "nodeType" : { - "type" : "integer", - "format" : "int32" - }, - "namespaceURI" : { - "type" : "string" - }, - "lastChild" : { - "$ref" : "#/definitions/Node" - }, - "parentNode" : { - "$ref" : "#/definitions/Node" - }, - "firstChild" : { - "$ref" : "#/definitions/Node" - }, - "nextSibling" : { - "$ref" : "#/definitions/Node" - }, - "previousSibling" : { - "$ref" : "#/definitions/Node" - }, - "baseURI" : { - "type" : "string" - }, - "textContent" : { - "type" : "string" - }, - "attributes" : { - "$ref" : "#/definitions/NamedNodeMap" - } - } - }, - "NodeList" : { - "type" : "object", - "properties" : { - "length" : { - "type" : "integer", - "format" : "int32" - } - } - }, - "Request" : { - "type" : "object", - "properties" : { - "requestDefaults" : { - "$ref" : "#/definitions/RequestDefaults" - }, - "multiRequests" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/RequestReference" - } - }, - "status" : { - "$ref" : "#/definitions/Status" - }, - "requestAttributesIncludedInResult" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeCategory" - } - }, - "combinedDecision" : { - "type" : "boolean" - }, - "returnPolicyIdList" : { - "type" : "boolean" - }, - "requestAttributes" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/RequestAttributes" - } - } - } - }, - "RequestAttributes" : { - "type" : "object", - "properties" : { - "contentRoot" : { - "$ref" : "#/definitions/Node" - }, - "xmlId" : { - "type" : "string" - }, - "category" : { - "$ref" : "#/definitions/Identifier" - }, - "attributes" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/Attribute" - } - } - } - }, - "RequestAttributesReference" : { - "type" : "object", - "properties" : { - "referenceId" : { - "type" : "string" - } - } - }, - "RequestDefaults" : { - "type" : "object", - "properties" : { - "xpathVersion" : { - "type" : "string", - "format" : "uri" - } - } - }, - "RequestReference" : { - "type" : "object", - "properties" : { - "attributesReferences" : { - "type" : "array", - "items" : { - "$ref" : "#/definitions/RequestAttributesReference" - } - } - } - }, - "TypeInfo" : { - "type" : "object", - "properties" : { - "typeNamespace" : { - "type" : "string" - }, - "typeName" : { - "type" : "string" - } - } - }, - "StatisticsReport" : { - "type" : "object", - "properties" : { - "code" : { - "type" : "integer", - "format" : "int32" - }, - "totalPolicyTypesCount" : { - "type" : "integer", - "format" : "int64" - }, - "totalPoliciesCount" : { - "type" : "integer", - "format" : "int64" - }, - "totalErrorCount" : { - "type" : "integer", - "format" : "int64" - }, - "permitDecisionsCount" : { - "type" : "integer", - "format" : "int64" - }, - "denyDecisionsCount" : { - "type" : "integer", - "format" : "int64" - }, - "indeterminantDecisionsCount" : { - "type" : "integer", - "format" : "int64" - }, - "notApplicableDecisionsCount" : { - "type" : "integer", - "format" : "int64" - } - } - }, - "DecisionResponse" : { - "type" : "object", - "properties" : { - "status" : { - "type" : "string" - }, - "message" : { - "type" : "string" - }, - "advice" : { - "type" : "object", - "additionalProperties" : { - "type" : "object" - } - }, - "obligations" : { - "type" : "object", - "additionalProperties" : { - "type" : "object" - } - }, - "policies" : { - "type" : "object", - "additionalProperties" : { - "type" : "object" - } - } - } - }, - "DecisionRequest" : { - "type" : "object", - "properties" : { - "onapName" : { - "type" : "string" - }, - "onapComponent" : { - "type" : "string" - }, - "onapInstance" : { - "type" : "string" - }, - "requestId" : { - "type" : "string" - }, - "context" : { - "type" : "object", - "additionalProperties" : { - "type" : "object" - } - }, - "action" : { - "type" : "string" - }, - "resource" : { - "type" : "object", - "additionalProperties" : { - "type" : "object" - } - } - } - } - } -} |