{
  "openapi": "3.0.1",
  "info": {
    "title": "TMF 640 API Service Activation and Configuration",
    "description": "## TMF API Reference: TMF640 - Service Activation and Configuration  ### Release : 18.5 - December 2018  Service Activation and Configuration API goal is to provide the ability to activate and configure Services.  ### Operations Service Activation and Configuration API performs the following operations on the resources : - Retrieve an entity or a collection of entities depending on filter criteria - Partial update of an entity (including updating rules) - Create an entity (including default values and creation rules) - Delete an entity (for administration purposes) - Manage notification of events",
    "license": {
      "name": "Apache 2.0",
      "url": "https://osl.etsi.org"
    }
  },
  "externalDocs": {
    "description": "TMF API Tables",
    "url": "https://www.tmforum.org/oda/open-apis/table"
  },
  "servers": [
    {
      "url": "https://portal.openslice.eu/tmf-api",
      "description": "Generated server url"
    }
  ],
  "security": [
    {
      "security_auth": []
    }
  ],
  "tags": [
    {
      "name": "monitor",
      "description": "the monitor API"
    },
    {
      "name": "listener",
      "description": "the listener API"
    },
    {
      "name": "service",
      "description": "the service API"
    },
    {
      "name": "hub",
      "description": "the hub API"
    }
  ],
  "paths": {
    "/ServiceActivationAndConfiguration/v3/service": {
      "get": {
        "tags": [
          "service"
        ],
        "summary": "List or find Service objects",
        "description": "This operation list or find Service entities",
        "operationId": "listService",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated properties to be provided in response",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Requested index for start of resources to be provided in response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Requested number of resources to be provided in response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Service"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "service"
        ],
        "summary": "Creates a Service",
        "description": "This operation creates a Service entity.",
        "operationId": "createService",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ServiceCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "400": {
            "description": "Created",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/serviceStateChangeNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity ServiceStateChangeNotification",
        "description": "Example of a client listener for receiving the notification ServiceStateChangeNotification",
        "operationId": "listenToServiceStateChangeNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ServiceStateChangeNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/serviceDeleteNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity ServiceDeleteNotification",
        "description": "Example of a client listener for receiving the notification ServiceDeleteNotification",
        "operationId": "listenToServiceDeleteNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ServiceDeleteNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/serviceCreateNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity ServiceCreateNotification",
        "description": "Example of a client listener for receiving the notification ServiceCreateNotification",
        "operationId": "listenToServiceCreateNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ServiceCreateNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/serviceAttributeValueChangeNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity ServiceAttributeValueChangeNotification",
        "description": "Example of a client listener for receiving the notification ServiceAttributeValueChangeNotification",
        "operationId": "listenToServiceAttributeValueChangeNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ServiceAttributeValueChangeNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/monitorStateChangeNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity MonitorStateChangeNotification",
        "description": "Example of a client listener for receiving the notification MonitorStateChangeNotification",
        "operationId": "listenToMonitorStateChangeNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/MonitorStateChangeNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/monitorDeleteNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity MonitorDeleteNotification",
        "description": "Example of a client listener for receiving the notification MonitorDeleteNotification",
        "operationId": "listenToMonitorDeleteNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/MonitorDeleteNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/monitorCreateNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity MonitorCreateNotification",
        "description": "Example of a client listener for receiving the notification MonitorCreateNotification",
        "operationId": "listenToMonitorCreateNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/MonitorCreateNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/listener/monitorAttributeValueChangeNotification": {
      "post": {
        "tags": [
          "listener",
          "notification listeners (client side)"
        ],
        "summary": "Client listener for entity MonitorAttributeValueChangeNotification",
        "description": "Example of a client listener for receiving the notification MonitorAttributeValueChangeNotification",
        "operationId": "listenToMonitorAttributeValueChangeNotification",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/MonitorAttributeValueChangeNotification"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/hub": {
      "post": {
        "tags": [
          "hub",
          "events subscription"
        ],
        "summary": "Register a listener",
        "description": "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
        "operationId": "registerListener",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/EventSubscriptionInput"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Subscribed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/EventSubscription"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/service/{id}": {
      "get": {
        "tags": [
          "service"
        ],
        "summary": "Retrieves a Service by ID",
        "description": "This operation retrieves a Service entity. Attribute selection is enabled for all first level attributes.",
        "operationId": "retrieveService",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Service",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated properties to provide in response",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "service"
        ],
        "summary": "Deletes a Service",
        "description": "This operation deletes a Service entity.",
        "operationId": "deleteService",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Service",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "204": {
            "description": "Deleted"
          },
          "409": {
            "description": "Conflict"
          },
          "404": {
            "description": "Not Found"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Bad Request"
          },
          "405": {
            "description": "Method Not allowed"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      },
      "patch": {
        "tags": [
          "service"
        ],
        "summary": "Updates partially a Service",
        "description": "This operation updates partially a Service entity.",
        "operationId": "patchService",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Service",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ServiceUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "200": {
            "description": "Updated",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Service"
                }
              }
            }
          }
        }
      }
    },
    "/monitor": {
      "get": {
        "tags": [
          "monitor"
        ],
        "summary": "List or find Monitor objects",
        "description": "This operation list or find Monitor entities",
        "operationId": "listMonitor",
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated properties to be provided in response",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Requested index for start of resources to be provided in response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Requested number of resources to be provided in response",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Monitor"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/monitor/{id}": {
      "get": {
        "tags": [
          "monitor"
        ],
        "summary": "Retrieves a Monitor by ID",
        "description": "This operation retrieves a Monitor entity. Attribute selection is enabled for all first level attributes.",
        "operationId": "retrieveMonitor",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Monitor",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Comma-separated properties to provide in response",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Monitor"
                }
              }
            }
          }
        }
      }
    },
    "/ServiceActivationAndConfiguration/v3/hub/{id}": {
      "delete": {
        "tags": [
          "hub",
          "events subscription"
        ],
        "summary": "Unregister a listener",
        "description": "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.",
        "operationId": "unregisterListener",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The id of the registered listener",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Internal Server Error"
          },
          "400": {
            "description": "Bad request"
          },
          "204": {
            "description": "Deleted"
          },
          "405": {
            "description": "Method not allowed"
          },
          "404": {
            "description": "Not Found"
          },
          "403": {
            "description": "Forbidden"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Characteristic": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "value": {
            "type": "object",
            "description": "The value of the characteristic"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "valueType": {
            "type": "string",
            "description": "Data type of the value of the characteristic"
          }
        },
        "description": "Describes a given characteristic of an object or entity through a name/value pair."
      },
      "Note": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "description": "Date of the note"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "author": {
            "type": "string",
            "description": "Author of the note"
          },
          "system": {
            "type": "string",
            "description": "Describes the system from which the action related to this note was done"
          },
          "text": {
            "type": "string",
            "description": "Text of the note"
          }
        },
        "description": "Extra information about a given entity"
      },
      "Place": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the place"
          },
          "role": {
            "type": "string",
            "description": "Role of the place, such as: [home delivery], [shop retrieval])"
          }
        },
        "description": "Place reference. Place defines the places where the products are sold or delivered."
      },
      "RelatedParty": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "role": {
            "type": "string",
            "description": "Role of the related party."
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "id": {
            "type": "string"
          },
          "extendedInfo": {
            "type": "string"
          }
        },
        "description": "RelatedParty reference. A related party defines party or party role linked to a specific entity."
      },
      "ResourceRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the supporting resource"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources."
      },
      "ServiceCreate": {
        "type": "object",
        "properties": {
          "endDate": {
            "type": "string",
            "description": "Date when the service ends"
          },
          "startDate": {
            "type": "string",
            "description": "Date when the service starts"
          },
          "category": {
            "type": "string",
            "description": "Is it a customer facing or resource facing service"
          },
          "description": {
            "type": "string",
            "description": "Free-text description of the service"
          },
          "hasStarted": {
            "type": "boolean",
            "description": "If TRUE, this Service has already been started"
          },
          "isServiceEnabled": {
            "type": "boolean",
            "description": "If FALSE, this particular Service has NOT been enabled for use"
          },
          "isStateful": {
            "type": "boolean",
            "description": "If TRUE, this Service can be changed without affecting any other services"
          },
          "name": {
            "type": "string",
            "description": "Name of the service"
          },
          "serviceDate": {
            "type": "string",
            "description": "Date when the service was created (whatever its status)."
          },
          "serviceType": {
            "type": "string",
            "description": "Business type of the service"
          },
          "startMode": {
            "type": "string",
            "description": "This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above"
          },
          "note": {
            "type": "array",
            "description": "A list of notes made on this service",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "place": {
            "type": "array",
            "description": "A list of places related to this service, e.g. where the service is installed, a delivery address for equipment, etc.",
            "items": {
              "$ref": "#/components/schemas/Place"
            }
          },
          "relatedParty": {
            "type": "array",
            "description": "A list of related party references (RelatedParty [1..*]). A related party defines party or party role linked to a specific entity.",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "serviceCharacteristic": {
            "type": "array",
            "description": "A list of characteristics that characterize this service (ServiceCharacteristic [*]) ",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "serviceOrder": {
            "type": "array",
            "description": "A list of service orders related to this service",
            "items": {
              "$ref": "#/components/schemas/ServiceOrderRef"
            }
          },
          "serviceSpecification": {
            "$ref": "#/components/schemas/ServiceSpecificationRef"
          },
          "state": {
            "type": "string",
            "description": "The life cycle state of the service, such as: feasibilityChecked, designed, reserved, active, inactive, terminated",
            "enum": [
              "feasibilityChecked",
              "designed",
              "reserved",
              "inactive",
              "active",
              "terminated"
            ]
          },
          "supportingResource": {
            "type": "array",
            "description": "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources.",
            "items": {
              "$ref": "#/components/schemas/ResourceRef"
            }
          },
          "supportingService": {
            "type": "array",
            "description": "A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS).",
            "items": {
              "$ref": "#/components/schemas/ServiceRef"
            }
          },
          "serviceRelationship": {
            "type": "array",
            "description": "A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory (useful for describing relies-on, relies-from between CFS for example).",
            "items": {
              "$ref": "#/components/schemas/ServiceRelationship"
            }
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "The Service to be created"
      },
      "ServiceOrderRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the Service Order"
          },
          "serviceOrderItemId": {
            "type": "string",
            "description": "Unique identifier of the Service Order Item within a service order, not populated if this is a reference to a service order"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Service Order reference. Useful to understand the which was the Service order through which the service was instantiated in the service inventory"
      },
      "ServiceRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "id": {
            "type": "string",
            "description": "Id of the service"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          }
        },
        "description": "Service reference, for when Service is used by other entities"
      },
      "ServiceRelationship": {
        "required": [
          "relationshipType",
          "service"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "relationshipType": {
            "type": "string",
            "description": "The type of relationship (e.g. depends on, enables)"
          },
          "service": {
            "$ref": "#/components/schemas/ServiceRef"
          }
        },
        "description": "Describes links with services of the same category (useful for bundled services)"
      },
      "ServiceSpecificationRef": {
        "type": "object",
        "properties": {
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "version": {
            "type": "string",
            "description": "Service specification version"
          },
          "targetServiceSchema": {
            "$ref": "#/components/schemas/TargetServiceSchema"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "id": {
            "type": "string"
          }
        },
        "description": "Service specification reference: ServiceSpecification(s) required to realize a ProductSpecification."
      },
      "TargetServiceSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          }
        },
        "description": "The reference object to the schema and type of target service which is described by service specification"
      },
      "Service": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "endDate": {
            "type": "string",
            "description": "Date when the service ends"
          },
          "startDate": {
            "type": "string",
            "description": "Date when the service starts"
          },
          "description": {
            "type": "string",
            "description": "Free-text description of the service"
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string"
          },
          "href": {
            "type": "string",
            "description": "Unique reference of the entity"
          },
          "name": {
            "type": "string",
            "description": "Name of the entity"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the service"
          },
          "category": {
            "type": "string",
            "description": "Is it a customer facing or resource facing service"
          },
          "hasStarted": {
            "type": "boolean",
            "description": "If TRUE, this Service has already been started"
          },
          "isServiceEnabled": {
            "type": "boolean",
            "description": "If FALSE, this particular Service has NOT been enabled for use"
          },
          "isStateful": {
            "type": "boolean",
            "description": "If TRUE, this Service can be changed without affecting any other services"
          },
          "serviceDate": {
            "type": "string",
            "description": "Date when the service was created (whatever its status)."
          },
          "serviceType": {
            "type": "string",
            "description": "Business type of the service"
          },
          "startMode": {
            "type": "string",
            "description": "This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above"
          },
          "note": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of notes made on this service",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "place": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of places related to this service, e.g. where the service is installed, a delivery address for equipment, etc.",
            "items": {
              "$ref": "#/components/schemas/Place"
            }
          },
          "relatedParty": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of related party references (RelatedParty [1..*]). A related party defines party or party role linked to a specific entity.",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "serviceCharacteristic": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of characteristics that characterize this service (ServiceCharacteristic [*]) ",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "serviceOrder": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of service orders related to this service",
            "items": {
              "$ref": "#/components/schemas/ServiceOrderRef"
            }
          },
          "serviceRelationship": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory (useful for describing relies-on, relies-from between CFS for example).",
            "items": {
              "$ref": "#/components/schemas/ServiceRelationship"
            }
          },
          "serviceSpecification": {
            "$ref": "#/components/schemas/ServiceSpecificationRef"
          },
          "state": {
            "type": "string",
            "description": "The life cycle state of the service, such as: feasibilityChecked, designed, reserved, active, inactive, terminated",
            "enum": [
              "feasibilityChecked",
              "designed",
              "reserved",
              "inactive",
              "active",
              "terminated"
            ]
          },
          "supportingResource": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources.",
            "items": {
              "$ref": "#/components/schemas/ResourceRef"
            }
          },
          "supportingService": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS).",
            "items": {
              "$ref": "#/components/schemas/ServiceRef"
            }
          }
        },
        "description": "Service is a base class for defining the Service hierarchy. All Services are characterized as either being possibly visible and usable by a Customer or not. This gives rise to the two subclasses of Service: CustomerFacingService and ResourceFacingService."
      },
      "ServiceStateChangeEvent": {
        "type": "object",
        "properties": {
          "service": {
            "$ref": "#/components/schemas/Service"
          }
        },
        "description": "The event data structure"
      },
      "ServiceStateChangeNotification": {
        "type": "object",
        "properties": {
          "eventTime": {
            "type": "string",
            "description": "Time of the event occurrence"
          },
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/ServiceStateChangeEvent"
          }
        },
        "description": "The event data"
      },
      "EventSubscription": {
        "required": [
          "callback",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id of the listener"
          },
          "callback": {
            "type": "string",
            "description": "The callback being registered."
          },
          "query": {
            "type": "string",
            "description": "additional data to be passed"
          }
        },
        "description": "Sets the communication endpoint address the service instance must use to deliver notification information"
      },
      "ServiceDeleteEvent": {
        "type": "object",
        "properties": {
          "service": {
            "$ref": "#/components/schemas/Service"
          }
        },
        "description": "The event data structure"
      },
      "ServiceDeleteNotification": {
        "type": "object",
        "properties": {
          "eventTime": {
            "type": "string",
            "description": "Time of the event occurrence"
          },
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/ServiceDeleteEvent"
          }
        },
        "description": "The event data"
      },
      "ServiceCreateEvent": {
        "type": "object",
        "properties": {
          "service": {
            "$ref": "#/components/schemas/Service"
          }
        },
        "description": "The event data structure"
      },
      "ServiceCreateNotification": {
        "type": "object",
        "properties": {
          "eventTime": {
            "type": "string",
            "description": "Time of the event occurrence"
          },
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/ServiceCreateEvent"
          }
        },
        "description": "The event data"
      },
      "ServiceAttributeValueChangeEvent": {
        "type": "object",
        "properties": {
          "service": {
            "$ref": "#/components/schemas/Service"
          }
        },
        "description": "The event data structure"
      },
      "ServiceAttributeValueChangeNotification": {
        "type": "object",
        "properties": {
          "eventTime": {
            "type": "string",
            "description": "Time of the event occurrence"
          },
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/ServiceAttributeValueChangeEvent"
          }
        },
        "description": "The event data"
      },
      "HeaderItem": {
        "required": [
          "name",
          "value"
        ],
        "type": "object",
        "properties": {
          "atBaseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "atSchemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "atType": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "name": {
            "type": "string",
            "description": "The name of the header item, e.g. locale"
          },
          "value": {
            "type": "string",
            "description": "The value of the header item, e.g. en-us"
          },
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          }
        },
        "description": "An item typically included in a request or response"
      },
      "Monitor": {
        "type": "object",
        "properties": {
          "atBaseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "atSchemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "atType": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "id": {
            "type": "string",
            "description": "Identifier of an instance of the monitor. Required to be unique within the resource type.  Used in URIs as the identifier for specific instances of a type"
          },
          "href": {
            "type": "string",
            "description": "reference to this monitor"
          },
          "sourceHref": {
            "type": "string",
            "description": "The monitored resource href"
          },
          "state": {
            "type": "string",
            "description": "The Monitor state of the resource.  InProgress, InError, Completed"
          },
          "request": {
            "$ref": "#/components/schemas/Request"
          },
          "response": {
            "$ref": "#/components/schemas/Response"
          },
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          }
        },
        "description": "Monitoring of resources"
      },
      "MonitorStateChangeEvent": {
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/Monitor"
          }
        },
        "description": "The event data structure"
      },
      "MonitorStateChangeNotification": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventTime": {
            "type": "string",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/MonitorStateChangeEvent"
          }
        },
        "description": "The event data"
      },
      "Request": {
        "required": [
          "body",
          "header"
        ],
        "type": "object",
        "properties": {
          "atBaseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "atSchemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "atType": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "body": {
            "type": "string",
            "description": "The body of the request. For example for an HTTP request might contain content of a form ."
          },
          "method": {
            "type": "string",
            "description": "The protocol of the request, e.g. http"
          },
          "to": {
            "type": "string",
            "description": "The target of the request, e.g. a URL for an HTTP request"
          },
          "header": {
            "maxItems": 2147483647,
            "minItems": 1,
            "type": "array",
            "description": "Items included in the header of the request. For example for an HTTP request might contain requested locale, basic authentication.",
            "items": {
              "$ref": "#/components/schemas/HeaderItem"
            }
          },
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          }
        },
        "description": "A response to a request"
      },
      "Response": {
        "required": [
          "body",
          "header"
        ],
        "type": "object",
        "properties": {
          "atBaseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "atSchemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "atType": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          },
          "body": {
            "type": "string",
            "description": "The body of the response. For example for an HTTP response might contain HTML for rendering."
          },
          "statusCode": {
            "type": "string",
            "description": "The status of the response. For example for an HTTP response would be codes such as 200, 400, etc."
          },
          "header": {
            "maxItems": 2147483647,
            "minItems": 1,
            "type": "array",
            "description": "Items included in the header of the response. For example for an HTTP response might contain negotiated locale.",
            "items": {
              "$ref": "#/components/schemas/HeaderItem"
            }
          },
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          }
        },
        "description": "A response to a request"
      },
      "MonitorDeleteEvent": {
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/Monitor"
          }
        },
        "description": "The event data structure"
      },
      "MonitorDeleteNotification": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventTime": {
            "type": "string",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/MonitorDeleteEvent"
          }
        },
        "description": "The event data"
      },
      "MonitorCreateEvent": {
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/Monitor"
          }
        },
        "description": "The event data structure"
      },
      "MonitorCreateNotification": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventTime": {
            "type": "string",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/MonitorCreateEvent"
          }
        },
        "description": "The event data"
      },
      "MonitorAttributeValueChangeEvent": {
        "type": "object",
        "properties": {
          "monitor": {
            "$ref": "#/components/schemas/Monitor"
          }
        },
        "description": "The event data structure"
      },
      "MonitorAttributeValueChangeNotification": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "description": "The identifier of the notification"
          },
          "eventTime": {
            "type": "string",
            "format": "date-time"
          },
          "eventType": {
            "type": "string",
            "description": "The type of the notification"
          },
          "fieldPath": {
            "type": "string",
            "description": "The path identifying the object field concerned by this notification"
          },
          "resourcePath": {
            "type": "string",
            "description": "The path identifying the resource object concerned by this notification"
          },
          "event": {
            "$ref": "#/components/schemas/MonitorAttributeValueChangeEvent"
          }
        },
        "description": "The event data"
      },
      "EventSubscriptionInput": {
        "required": [
          "callback"
        ],
        "type": "object",
        "properties": {
          "callback": {
            "type": "string",
            "description": "The callback being registered."
          },
          "query": {
            "type": "string",
            "description": "additional data to be passed"
          }
        },
        "description": "Data containing the callback endpoint to deliver the information"
      },
      "ServiceUpdate": {
        "type": "object",
        "properties": {
          "endDate": {
            "type": "string",
            "description": "Date when the service ends"
          },
          "startDate": {
            "type": "string",
            "description": "Date when the service starts"
          },
          "category": {
            "type": "string",
            "description": "Is it a customer facing or resource facing service"
          },
          "description": {
            "type": "string",
            "description": "Free-text description of the service"
          },
          "hasStarted": {
            "type": "boolean",
            "description": "If TRUE, this Service has already been started"
          },
          "isServiceEnabled": {
            "type": "boolean",
            "description": "If FALSE, this particular Service has NOT been enabled for use"
          },
          "isStateful": {
            "type": "boolean",
            "description": "If TRUE, this Service can be changed without affecting any other services"
          },
          "name": {
            "type": "string",
            "description": "Name of the service"
          },
          "serviceDate": {
            "type": "string",
            "description": "Date when the service was created (whatever its status)."
          },
          "serviceType": {
            "type": "string",
            "description": "Business type of the service"
          },
          "startMode": {
            "type": "string",
            "description": "This attribute is an enumerated integer that indicates how the Service is started, such as: 0: Unknown; 1: Automatically by the managed environment; 2: Automatically by the owning device; 3: Manually by the Provider of the Service; 4: Manually by a Customer of the Provider; 5: Any of the above"
          },
          "note": {
            "type": "array",
            "description": "A list of notes made on this service",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "place": {
            "type": "array",
            "description": "A list of places related to this service, e.g. where the service is installed, a delivery address for equipment, etc.",
            "items": {
              "$ref": "#/components/schemas/Place"
            }
          },
          "relatedParty": {
            "type": "array",
            "description": "A list of related party references (RelatedParty [1..*]). A related party defines party or party role linked to a specific entity.",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "serviceCharacteristic": {
            "type": "array",
            "description": "A list of characteristics that characterize this service (ServiceCharacteristic [*]) ",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "serviceOrder": {
            "type": "array",
            "description": "A list of service orders related to this service",
            "items": {
              "$ref": "#/components/schemas/ServiceOrderRef"
            }
          },
          "serviceSpecification": {
            "$ref": "#/components/schemas/ServiceSpecificationRef"
          },
          "state": {
            "type": "string",
            "description": "The life cycle state of the service, such as: feasibilityChecked, designed, reserved, active, inactive, terminated",
            "enum": [
              "feasibilityChecked",
              "designed",
              "reserved",
              "inactive",
              "active",
              "terminated"
            ]
          },
          "supportingResource": {
            "type": "array",
            "description": "A list of supporting resources (SupportingResource [*]).Note: only Service of type RFS can be associated with Resources.",
            "items": {
              "$ref": "#/components/schemas/ResourceRef"
            }
          },
          "supportingService": {
            "type": "array",
            "description": "A list of supporting services (SupportingService [*]). A collection of services that support this service (bundling, link CFS to RFS).",
            "items": {
              "$ref": "#/components/schemas/ServiceRef"
            }
          },
          "serviceRelationship": {
            "type": "array",
            "description": "A list of service relationships (ServiceRelationship [*]). Describes links with other service(s) in the inventory (useful for describing relies-on, relies-from between CFS for example).",
            "items": {
              "$ref": "#/components/schemas/ServiceRelationship"
            }
          },
          "@baseType": {
            "type": "string",
            "description": "When sub-classing, this defines the super-class"
          },
          "@schemaLocation": {
            "type": "string",
            "description": "A URI to a JSON-Schema file that defines additional attributes and relationships"
          },
          "@type": {
            "type": "string",
            "description": "When sub-classing, this defines the sub-class entity name"
          }
        },
        "description": "The Service to be updated"
      }
    },
    "securitySchemes": {
      "security_auth": {
        "type": "oauth2",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://portal.openslice.eu/auth/realms/openslice/protocol/openid-connect/auth",
            "tokenUrl": "https://portal.openslice.eu/auth/realms/openslice/protocol/openid-connect/token",
            "scopes": {
              "read": "read scope",
              "write": "write scope"
            }
          }
        }
      }
    }
  }
}