{ "openapi": "3.0.1", "info": { "title": "TMF 685 Resource Pool Management", "description": "## TMF API Reference: TMF685 Resource Pool Management ### Release : 18.0 Resources that can\r\nbe reserved are only\r\nin one pool.\r\nIF a resource is not found in a pool is infinite.\r\nWhen one makes a reservation for a resource, then we check availability of \r\nthis resource on that specific dates\r\nif checkAvailability returns the resource\r\nthen it can be reserved on that specific requested date and time.", "license": { "name": "Apache 2.0", "url": "https://osl.etsi.org" }, "version": "1.0.0" }, "externalDocs": { "description": "Openslice", "url": "https://osl.etsi.org" }, "servers": [ { "url": "https://portal.openslice.eu/tmf-api", "description": "Generated server url" } ], "security": [ { "security_auth": [] } ], "tags": [ { "name": "resourcePool", "description": "the resourcePool API" }, { "name": "reservation", "description": "the reservation API" }, { "name": "availabilityCheck", "description": "the availabilityCheck API" }, { "name": "hub", "description": "the hub API" }, { "name": "extract", "description": "the extract API" }, { "name": "push", "description": "the push API" } ], "paths": { "/resourcePoolManagement/v1/resourcePool": { "get": { "tags": [ "resourcePool" ], "summary": "List or find ResourcePool objects", "description": "This operation list or find ResourcePool entities", "operationId": "listResourcePool", "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/ResourcePool" } } } } }, "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } }, "200": { "description": "Success", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResourcePool" } } } } } } }, "post": { "tags": [ "resourcePool" ], "summary": "Creates a 'ResourcePool'", "operationId": "createResourcePool", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePoolCreate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "400": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } } } } }, "/resourcePoolManagement/v1/reservation": { "get": { "tags": [ "reservation" ], "summary": "List or find 'Reservation' objects", "operationId": "listReservation", "parameters": [ { "name": "fields", "in": "query", "description": "Comma separated properties to display 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": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "200": { "description": "Ok", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Reservation" } } } } } } }, "post": { "tags": [ "reservation" ], "summary": "Creates a 'Reservation'", "operationId": "createReservation", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReservationCreate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "400": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } } } } }, "/resourcePoolManagement/v1/push": { "post": { "tags": [ "push" ], "summary": "Creates a 'Push' action and modifies a Pool", "description": "This operation runs TASK, which adds the capacity of the new resource to the resource pool.", "operationId": "createPush", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PushCreate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "400": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } } } } }, "/resourcePoolManagement/v1/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": { "schema": { "$ref": "#/components/schemas/EventSubscriptionInput" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "400": { "description": "Subscribed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EventSubscription" } } } } } } }, "/resourcePoolManagement/v1/extract": { "post": { "tags": [ "extract" ], "summary": "Creates an 'Extract' action and modifies a pool", "description": "In this operation, TASK is executed to extract the capacity of the resource from the resource pool to another pool.", "operationId": "createExtract", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExtractCreate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "400": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } } } } }, "/resourcePoolManagement/v1/availabilityCheck": { "post": { "tags": [ "availabilityCheck" ], "summary": "Creates a 'AvailabilityCheck'", "description": "This operation executes task to retrieve available Resource entities or to check resource pool has available Resource capacity.", "operationId": "createAvailabilityCheck", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheckCreate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } }, "400": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvailabilityCheck" } } } } } } }, "/resourcePoolManagement/v1/resourcePool/{id}": { "get": { "tags": [ "resourcePool" ], "summary": "Retrieves a ResourcePool by ID", "description": "This operation retrieves a ResourcePool entity. Attribute selection is enabled for all first level attributes.", "operationId": "retrieveResourcePool", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the ResourcePool", "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/ResourcePool" } } } }, "409": { "description": "Conflict", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "404": { "description": "Not Found", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "403": { "description": "Forbidden", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "400": { "description": "Bad Request", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "200": { "description": "Success", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "401": { "description": "Unauthorized", "content": { "application/json;charset=utf-8": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } } } }, "delete": { "tags": [ "resourcePool" ], "summary": "Deletes a 'ResourcePool' by Id", "operationId": "deleteResourcePool", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Resource Pool", "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": [ "resourcePool" ], "summary": "Updates partially a 'ResourcePool' by Id", "operationId": "patchResourcePool", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Resource Pool", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePoolUpdate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "200": { "description": "Updated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResourcePool" } } } } } } }, "/resourcePoolManagement/v1/reservation/{id}": { "get": { "tags": [ "reservation" ], "summary": "Retrieves a 'Reservation' by Id", "operationId": "retrieveReservation", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Reservation", "required": true, "schema": { "type": "string" } } ], "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "200": { "description": "Ok", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } } } }, "delete": { "tags": [ "reservation", "resourcePool" ], "summary": "Deletes a 'Reservation' by Id", "operationId": "deleteReservation", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Reservation", "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": [ "reservation" ], "summary": "Updates partially a 'Reservation' by Id", "operationId": "patchReservation", "parameters": [ { "name": "id", "in": "path", "description": "Identifier of the Reservation", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReservationUpdate" } } }, "required": true }, "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "200": { "description": "Updated", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "405": { "description": "Method Not allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Reservation" } } } } } } }, "/resourcePoolManagement/v1/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": { "ApplicableTimePeriod": { "type": "object", "properties": { "uuid": { "type": "string" }, "fromDateTime": { "type": "string", "description": "The period of time for which the schedule is applicable. Instance values are mutually exclusive with daysOfWeek values." }, "endDateTime": { "type": "string", "description": "The period of time for which the schedule is applicable. Instance values are mutually exclusive with daysOfWeek values." }, "@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" }, "dayOfWeek": { "type": "string", "description": "A day or days representing when the schedule is applicable. For example 2, 3 represent Monday and Tuesday." }, "rangeInterval": { "type": "string", "description": "An indicator that specifies the inclusion or exclusion of the from and to DateTime attributes. Possible values are \"open\", \"closed\", \"closedBottom\" and \"closedTop\"." } }, "description": "The period of time for which Capacity or CapacityDemand applies." }, "AppliedCapacityAmount": { "type": "object", "properties": { "uuid": { "type": "string" }, "resource": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } }, "@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" }, "appliedDemandAmount": { "type": "integer", "description": "An amount of demand applied to a CapacityAmount. Note that this is a composite attribute defined by CapacityAmount.", "format": "int32" }, "resourceCapacityDemand": { "$ref": "#/components/schemas/ResourceCapacityDemand" }, "resources": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } } }, "description": "The amount of CapcityDemand applied to a CapacityAmount." }, "Capacity": { "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" }, "capacityAmount": { "type": "integer", "format": "int32" }, "relatedParty": { "$ref": "#/components/schemas/RelatedParty" }, "place": { "$ref": "#/components/schemas/PlaceRef" }, "resources": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } }, "appliedCapacityAmount": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/AppliedCapacityAmount" } } } }, "PlaceRef": { "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 a related entity." }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "description": "Place reference. PlaceRef defines the placeRefs 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." }, "ResourceCapacityDemand": { "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" }, "capacityDemandAmount": { "type": "integer", "description": "A value and units that define the CapacityDemand, such as 10000 ea, 10B Mb. Instance values are mutually exclusive with From and To capacityDemandAmounts and range interval.", "format": "int32" }, "resourcePool": { "$ref": "#/components/schemas/ResourcePoolRef" }, "applicableTimePeriod": { "$ref": "#/components/schemas/ApplicableTimePeriod" }, "place": { "$ref": "#/components/schemas/PlaceRef" }, "resources": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } } }, "description": "the amount of capacity that is planned to be consumed or has been consumed." }, "ResourcePoolCreate": { "type": "object", "properties": { "atBaseType": { "type": "string", "description": "A string. Generic attribute indicating the base class type of the extension class of the current object. Useful only when the class type of the current object is unknown to the implementation." }, "atSchemaLocation": { "type": "string", "description": "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object." }, "atType": { "type": "string", "description": "A string. Generic attribute containing the name of the resource class type." }, "@baseType": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@type": { "type": "string" }, "description": { "type": "string", "description": "A string. free-text description of the Resource Pool." }, "relatedParty": { "type": "string", "description": "A related party defines party or party role linked to a specific entity, who uses the resource of Resource Pool." }, "name": { "type": "string" }, "capacity": { "$ref": "#/components/schemas/Capacity" } }, "description": "The Resource Pool to be created" }, "ResourcePoolRef": { "type": "object", "properties": { "atReferredType": { "type": "string", "description": "A string. Indicates the type of the referred object. This attribute is to be used when the object is representing a reference to an existing object instead of the of the object itself." }, "@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" }, "@referredType": { "type": "string" }, "id": { "type": "string", "description": "A string. Identifier of an instance of the Resource Pool." }, "resources": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } } }, "description": "manages resource capacity with the resource state" }, "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." } } }, "ResourcePool": { "type": "object", "properties": { "uuid": { "type": "string" }, "lastUpdate": { "type": "string", "description": "Date and time of the last update" }, "lifecycleStatusEnum": { "type": "string", "writeOnly": true, "enum": [ "In study", "In design", "In test", "Active", "Launched", "Retired", "Obsolete", "Rejected" ] }, "@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" }, "description": { "type": "string", "description": "Description of this catalog" }, "lifecycleStatus": { "type": "string", "description": "Used to indicate the current lifecycle status" }, "version": { "type": "string", "description": "Entity version" }, "validFor": { "$ref": "#/components/schemas/TimePeriod" }, "id": { "type": "string", "description": "Unique identifier of this REST resource" }, "capacity": { "$ref": "#/components/schemas/Capacity" } }, "description": "manages resource capacity with the resource state" }, "TimePeriod": { "type": "object", "properties": { "endDateTime": { "type": "string", "description": "End of the time period, using IETC-RFC-3339 format" }, "startDateTime": { "type": "string", "description": "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end" } }, "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both" }, "ReservationCreate": { "type": "object", "properties": { "requestedPeriodEndDateTime": { "type": "string" }, "requestedPeriodStartDateTime": { "type": "string" }, "atBaseType": { "type": "string" }, "atSchemaLocation": { "type": "string", "description": "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object." }, "atType": { "type": "string", "description": "A string. Indicates the (class) type of reservation. Ex. serviceItemReservation, resourceItemReservation" }, "@baseType": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@type": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "description": "A string. free-text description of the reservation." }, "relatedParty": { "$ref": "#/components/schemas/RelatedParty" }, "reservationState": { "type": "string", "description": "A string. The life cycle state of the reservation." }, "validFor": { "$ref": "#/components/schemas/TimePeriod" }, "reservationItem": { "type": "array", "items": { "$ref": "#/components/schemas/ReservationItem" } }, "serviceOrderRef": { "$ref": "#/components/schemas/ServiceOrderRef" } }, "description": "The Reservation to be created" }, "ReservationItem": { "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" }, "quantity": { "type": "integer", "description": "Represents the number of reservationItems that make up the reservation.", "format": "int32" }, "subReservationState": { "type": "string", "description": "A string. The life cycle state of the each reservation item." }, "resourceCapacity": { "$ref": "#/components/schemas/ResourceCapacityDemand" }, "appliedCapacityAmount": { "$ref": "#/components/schemas/AppliedCapacityAmount" } }, "description": "An identified part of the reservation. A reservation is decomposed into one or more reservation items." }, "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" }, "Reservation": { "type": "object", "properties": { "uuid": { "type": "string" }, "lastUpdate": { "type": "string", "description": "Date and time of the last update" }, "requestedPeriodStartDateTime": { "type": "string", "description": "Start of the time period, using IETC-RFC-3339 format. If you define a start, you must also define an end" }, "requestedPeriodEndDateTime": { "type": "string", "description": "End of the time period, using IETC-RFC-3339 format" }, "lifecycleStatusEnum": { "type": "string", "writeOnly": true, "enum": [ "In study", "In design", "In test", "Active", "Launched", "Retired", "Obsolete", "Rejected" ] }, "@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" }, "description": { "type": "string", "description": "Description of this catalog" }, "lifecycleStatus": { "type": "string", "description": "Used to indicate the current lifecycle status" }, "version": { "type": "string", "description": "Entity version" }, "validFor": { "$ref": "#/components/schemas/TimePeriod" }, "id": { "type": "string", "description": "A string. Identifier of an instance of the Reservation." }, "relatedParty": { "$ref": "#/components/schemas/RelatedParty" }, "reservationState": { "type": "string", "description": "A string. The life cycle state of the reservation." }, "reservationItem": { "uniqueItems": true, "type": "array", "items": { "$ref": "#/components/schemas/ReservationItem" } }, "serviceOrderRef": { "$ref": "#/components/schemas/ServiceOrderRef" } }, "description": "reservation api resource" }, "PushCreate": { "type": "object", "properties": { "atType": { "type": "string", "description": "The class type of the actual resource (for type extension)." }, "atSchemaLocation": { "type": "string", "description": "A link to the schema describing a resource (for type extension)." }, "atBaseType": { "type": "string", "description": "The base type for use in polymorphic collections" }, "@type": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@baseType": { "type": "string" }, "capacity": { "$ref": "#/components/schemas/Capacity" }, "resourcePool": { "$ref": "#/components/schemas/ResourcePoolRef" } }, "description": "The Push to be performed" }, "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" }, "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" } } }, "ExtractCreate": { "type": "object", "properties": { "atType": { "type": "string", "description": "The class type of the actual resource (for type extension)." }, "atSchemaLocation": { "type": "string", "description": "A link to the schema describing a resource (for type extension)." }, "atBaseType": { "type": "string", "description": "The base type for use in polymorphic collections" }, "@type": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@baseType": { "type": "string" }, "capacity": { "$ref": "#/components/schemas/Capacity" }, "resourcePool": { "$ref": "#/components/schemas/ResourcePoolRef" } }, "description": "The Extract to be performed" }, "AvailabilityCheckCreate": { "type": "object", "properties": { "atType": { "type": "string", "description": "The class type of the actual resource (for type extension)." }, "atSchemaLocation": { "type": "string", "description": "A link to the schema describing a resource (for type extension)." }, "atBaseType": { "type": "string", "description": "The base type for use in polymorphic collections" }, "@type": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@baseType": { "type": "string" }, "resourceCapacityDemand": { "$ref": "#/components/schemas/ResourceCapacityDemand" } }, "description": "The Availability Check to be created" }, "AvailabilityCheck": { "type": "object", "properties": { "atType": { "type": "string", "description": "The class type of the actual resource (for type extension)." }, "atSchemaLocation": { "type": "string", "description": "A link to the schema describing a resource (for type extension)." }, "atBaseType": { "type": "string", "description": "The base type for use in polymorphic collections" }, "href": { "type": "string", "description": "A string. Hyperlink to access the availabilityCheck task for resource pool Management" }, "id": { "type": "string", "description": "A string. Identifier of an instance of the availabilityCheck task for resource pool Management" }, "@type": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@baseType": { "type": "string" }, "resourceCapacityDemand": { "$ref": "#/components/schemas/ResourceCapacityDemand" }, "availableResources": { "type": "array", "items": { "$ref": "#/components/schemas/ResourceRef" } } }, "description": "the availabilityCheck task resource for resource pool management" }, "ResourcePoolUpdate": { "type": "object", "properties": { "atBaseType": { "type": "string", "description": "A string. Generic attribute indicating the base class type of the extension class of the current object. Useful only when the class type of the current object is unknown to the implementation." }, "atSchemaLocation": { "type": "string", "description": "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object." }, "atType": { "type": "string", "description": "A string. Generic attribute containing the name of the resource class type." }, "@baseType": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@type": { "type": "string" }, "description": { "type": "string", "description": "A string. free-text description of the Resource Pool." }, "relatedParty": { "type": "string", "description": "A related party defines party or party role linked to a specific entity, who uses the resource of Resource Pool." }, "name": { "type": "string" }, "capacity": { "$ref": "#/components/schemas/Capacity" } }, "description": "The Resource Pool to be updated" }, "ReservationUpdate": { "type": "object", "properties": { "requestedPeriodEndDateTime": { "type": "string" }, "requestedPeriodStartDateTime": { "type": "string" }, "atBaseType": { "type": "string" }, "atSchemaLocation": { "type": "string", "description": "A string. Generic attribute containing the link to the schema that defines the structure of the class type of the current object." }, "atType": { "type": "string", "description": "A string. Indicates the (class) type of reservation. Ex. serviceItemReservation, resourceItemReservation" }, "@baseType": { "type": "string" }, "@schemaLocation": { "type": "string" }, "@type": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "description": "A string. free-text description of the reservation." }, "relatedParty": { "$ref": "#/components/schemas/RelatedParty" }, "reservationState": { "type": "string", "description": "A string. The life cycle state of the reservation." }, "validFor": { "$ref": "#/components/schemas/TimePeriod" }, "reservationItem": { "type": "array", "items": { "$ref": "#/components/schemas/ReservationItem" } }, "serviceOrderRef": { "$ref": "#/components/schemas/ServiceOrderRef" } }, "description": "The Reservation 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" } } } } } } }