{
  "openapi": "3.0.1",
  "info": {
    "title": "TMF 702 Resource Activation and Configuration",
    "description": "## TMF API Reference: TMF702 - Resource Activation \n\n### Release : 19.5 - December 2019\n\nResource Activation  API goal is to provide the ability to activate Resources.\n\n### Operations\nResource Activation and Configuration API performs the following operations on the resources :\n- Retrieve an entity or a collection of entities depending on filter criteria\n- Partial update of an entity (including updating rules)\n- Create an entity (including default values and creation rules)\n- Delete an entity (for administration purposes)\n- Manage notification of events",
    "license": {
      "name": "Apache 2.0",
      "url": "https://osl.etsi.org"
    },
    "version": "4.0.0"
  },
  "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": "resource",
      "description": "The resource Activation API"
    }
  ],
  "paths": {
    "/resourceActivationAndConfiguration/v4/resource": {
      "get": {
        "tags": [
          "resource"
        ],
        "summary": "List or find Resource objects",
        "description": "This operation lists or finds Resource entities.",
        "operationId": "listResource",
        "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/Resource"
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Resource"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "resource"
        ],
        "summary": "Creates a Resource",
        "description": "This operation creates a Resource entity.",
        "operationId": "createResource",
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ResourceCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "400": {
            "description": "Created",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          }
        }
      }
    },
    "/resourceActivationAndConfiguration/v4/resource/{id}": {
      "get": {
        "tags": [
          "resource"
        ],
        "summary": "Retrieves a Resource by ID",
        "description": "This operation retrieves a Resource entity. Attribute selection is enabled for all first-level attributes.",
        "operationId": "retrieveResource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Resource",
            "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/Resource"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "resource"
        ],
        "summary": "Deletes a Resource",
        "description": "This operation deletes a Resource entity.",
        "operationId": "deleteResource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Resource",
            "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": [
          "resource"
        ],
        "summary": "Updates partially a Resource",
        "description": "This operation updates partially a Resource entity.",
        "operationId": "patchResource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the Resource",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json;charset=utf-8": {
              "schema": {
                "$ref": "#/components/schemas/ResourceUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "200": {
            "description": "Updated",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "405": {
            "description": "Method Not allowed",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json;charset=utf-8": {
                "schema": {
                  "$ref": "#/components/schemas/Resource"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Any": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "alias": {
            "type": "string"
          }
        }
      },
      "AttachmentRefOrValue": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "atReferredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "@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 for this particular attachment",
            "example": "4aafacbd-11ff-4dc8-b445-305f2215715f"
          },
          "attachmentType": {
            "type": "string",
            "description": "Attachment type such as video, picture",
            "example": "video"
          },
          "content": {
            "type": "string",
            "description": "The actual contents of the attachment object, if embedded, encoded as base64"
          },
          "description": {
            "type": "string",
            "description": "A narrative text describing the content of the attachment",
            "example": "Photograph of the Product"
          },
          "mimeType": {
            "type": "string",
            "description": "Attachment mime type such as extension file for video, picture and document"
          },
          "url": {
            "type": "string",
            "description": "Uniform Resource Locator, is a web page address (a subset of URI)",
            "example": "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f"
          },
          "size": {
            "$ref": "#/components/schemas/Quantity"
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          },
          "@referredType": {
            "type": "string"
          }
        },
        "description": "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture."
      },
      "Characteristic": {
        "required": [
          "name",
          "value"
        ],
        "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 characteristic"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the characteristic"
          },
          "valueType": {
            "type": "string",
            "description": "Data type of the value of the characteristic"
          },
          "characteristicRelationship": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CharacteristicRelationship"
            }
          },
          "value": {
            "$ref": "#/components/schemas/Any"
          }
        },
        "description": "Describes a given characteristic of an object or entity through a name/value pair."
      },
      "CharacteristicRelationship": {
        "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 characteristic"
          },
          "relationshipType": {
            "type": "string",
            "description": "The type of relationship"
          }
        },
        "description": "Another Characteristic that is related to the current Characteristic;"
      },
      "ConstraintRef": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "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 Extensible name"
          },
          "atReferredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "@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": "Hyperlink reference"
          },
          "name": {
            "type": "string",
            "description": "Name of the related entity."
          },
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "version": {
            "type": "string",
            "description": "constraint version"
          },
          "@referredType": {
            "type": "string"
          }
        },
        "description": "Constraint reference. The Constraint resource represents a policy/rule applied to an entity or entity spec."
      },
      "Feature": {
        "required": [
          "featureCharacteristic",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the feature."
          },
          "isBundle": {
            "type": "boolean",
            "description": "True if this is a feature group. Default is false."
          },
          "isEnabled": {
            "type": "boolean",
            "description": "True if this feature is enabled. Default is true."
          },
          "name": {
            "type": "string",
            "description": "This is the name for the feature."
          },
          "constraint": {
            "uniqueItems": true,
            "type": "array",
            "description": "This is a list of feature constraints.",
            "items": {
              "$ref": "#/components/schemas/ConstraintRef"
            }
          },
          "featureCharacteristic": {
            "maxItems": 2147483647,
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "This is a list of Characteristics for a particular feature.",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "featureRelationship": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureRelationship"
            }
          }
        },
        "description": "Configuration feature."
      },
      "FeatureRelationship": {
        "required": [
          "relationshipType"
        ],
        "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 target feature."
          },
          "relationshipType": {
            "type": "string",
            "description": "This is the type of the feature relationship."
          },
          "validFor": {
            "$ref": "#/components/schemas/TimePeriod"
          }
        },
        "description": "Configuration feature"
      },
      "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"
      },
      "Quantity": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Numeric value in a given unit",
            "format": "float"
          },
          "units": {
            "type": "string",
            "description": "Unit"
          }
        },
        "description": "An amount in a given unit"
      },
      "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."
      },
      "RelatedPlaceRefOrValue": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "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 Extensible name"
          },
          "atReferredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "@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"
          },
          "@referredType": {
            "type": "string"
          }
        },
        "description": "Related Entity reference. A related place defines a place described by reference or by value linked to a specific entity. The polymorphic attributes @type, @schemaLocation & @referredType are related to the place entity and not the RelatedPlaceRefOrValue class itself"
      },
      "ResourceCreate": {
        "type": "object",
        "properties": {
          "endOperatingDate": {
            "type": "string",
            "description": "A date time( DateTime). The date till the resource is operating"
          },
          "startOperatingDate": {
            "type": "string",
            "description": "A date time( DateTime). The date from which the resource is operating"
          },
          "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 Extensible name"
          },
          "category": {
            "type": "string",
            "description": "Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource"
          },
          "description": {
            "type": "string",
            "description": "free-text description of the resource"
          },
          "name": {
            "type": "string",
            "description": "A string used to give a name to the resource"
          },
          "resourceVersion": {
            "type": "string",
            "description": "A field that identifies the specific version of an instance of a resource."
          },
          "activationFeature": {
            "type": "array",
            "description": "Configuration features",
            "items": {
              "$ref": "#/components/schemas/Feature"
            }
          },
          "administrativeState": {
            "type": "string",
            "enum": [
              "locked",
              "unlocked",
              "shutdown"
            ]
          },
          "attachment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRefOrValue"
            }
          },
          "note": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "operationalState": {
            "type": "string",
            "enum": [
              "enable",
              "disable"
            ]
          },
          "place": {
            "$ref": "#/components/schemas/RelatedPlaceRefOrValue"
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "resourceCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "resourceRelationship": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceRelationship"
            }
          },
          "resourceSpecification": {
            "$ref": "#/components/schemas/ResourceSpecificationRef"
          },
          "resourceStatus": {
            "type": "string",
            "enum": [
              "standby",
              "alarm",
              "available",
              "reserved",
              "unknown",
              "suspended"
            ]
          },
          "usageState": {
            "type": "string",
            "enum": [
              "idle",
              "active",
              "busy"
            ]
          },
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          }
        },
        "description": "The Resource to be created"
      },
      "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."
          }
        }
      },
      "ResourceRelationship": {
        "required": [
          "relationshipType",
          "resource"
        ],
        "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"
          },
          "id": {
            "type": "string",
            "description": "unique identifier"
          },
          "relationshipType": {
            "type": "string",
            "description": "Type of the resource relationship, such as [bundled] if the resource is a bundle and you want to describe the bundled resources inside this bundle; [reliesOn] if the resource needs another already owned resource to rely on (eg: an option on an already owned mobile access resource) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful",
            "example": "bundled"
          },
          "resource": {
            "$ref": "#/components/schemas/ResourceRef"
          }
        },
        "description": "Linked resources to the one instantiate, such as [bundled] if the resource is a bundle and you want to describe the bundled resources inside this bundle; [reliesOn] if the resource needs another already owned resource to rely on (e.g. an option on an already owned mobile access resource) [targets] or [isTargeted] (depending on the way of expressing the link) for any other kind of links that may be useful"
      },
      "ResourceSpecificationRef": {
        "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": "Resource specification version"
          },
          "@referredType": {
            "type": "string",
            "description": "The actual type of the target instance when needed for disambiguation."
          },
          "id": {
            "type": "string"
          }
        },
        "description": "Resource Specification reference: The ResourceSpecification is required to realize a ProductSpecification."
      },
      "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"
      },
      "Resource": {
        "required": [
          "href",
          "id"
        ],
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "endOperatingDate": {
            "type": "string",
            "description": "A date time( DateTime). The date till the resource is operating"
          },
          "startOperatingDate": {
            "type": "string",
            "description": "A date time( DateTime). The date from which the resource is operating"
          },
          "@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": "The URI for the object itself."
          },
          "name": {
            "type": "string",
            "description": "A string used to give a name to the resource"
          },
          "id": {
            "type": "string",
            "description": "Identifier of an instance of the resource. Required to be unique within the resource type.  Used in URIs as the identifier for specific instances of a type."
          },
          "category": {
            "type": "string",
            "description": "Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource"
          },
          "description": {
            "type": "string",
            "description": "free-text description of the resource"
          },
          "resourceVersion": {
            "type": "string",
            "description": "A field that identifies the specific version of an instance of a resource."
          },
          "activationFeature": {
            "uniqueItems": true,
            "type": "array",
            "description": "Configuration features",
            "items": {
              "$ref": "#/components/schemas/Feature"
            }
          },
          "administrativeState": {
            "type": "string",
            "enum": [
              "locked",
              "unlocked",
              "shutdown"
            ]
          },
          "attachment": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRefOrValue"
            }
          },
          "note": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "operationalState": {
            "type": "string",
            "enum": [
              "enable",
              "disable"
            ]
          },
          "place": {
            "$ref": "#/components/schemas/RelatedPlaceRefOrValue"
          },
          "relatedParty": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "resourceCharacteristic": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "resourceRelationship": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceRelationship"
            }
          },
          "resourceSpecification": {
            "$ref": "#/components/schemas/ResourceSpecificationRef"
          },
          "resourceStatus": {
            "type": "string",
            "enum": [
              "standby",
              "alarm",
              "available",
              "reserved",
              "unknown",
              "suspended"
            ]
          },
          "usageState": {
            "type": "string",
            "enum": [
              "idle",
              "active",
              "busy"
            ]
          }
        },
        "description": "Resource is an abstract entity that describes the common set of attributes shared by all concrete resources (e.g. TPE, EQUIPMENT) in the inventory."
      },
      "ResourceUpdate": {
        "type": "object",
        "properties": {
          "endOperatingDate": {
            "type": "string",
            "description": "A date time( DateTime). The date till the resource is operating"
          },
          "startOperatingDate": {
            "type": "string",
            "description": "A date time( DateTime). The date from which the resource is operating"
          },
          "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 Extensible name"
          },
          "category": {
            "type": "string",
            "description": "Category of the concrete resource. e.g Gold, Silver for MSISDN concrete resource"
          },
          "description": {
            "type": "string",
            "description": "free-text description of the resource"
          },
          "name": {
            "type": "string",
            "description": "A string used to give a name to the resource"
          },
          "resourceVersion": {
            "type": "string",
            "description": "A field that identifies the specific version of an instance of a resource."
          },
          "activationFeature": {
            "type": "array",
            "description": "Configuration features",
            "items": {
              "$ref": "#/components/schemas/Feature"
            }
          },
          "administrativeState": {
            "type": "string",
            "enum": [
              "locked",
              "unlocked",
              "shutdown"
            ]
          },
          "attachment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRefOrValue"
            }
          },
          "note": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Note"
            }
          },
          "operationalState": {
            "type": "string",
            "enum": [
              "enable",
              "disable"
            ]
          },
          "place": {
            "$ref": "#/components/schemas/RelatedPlaceRefOrValue"
          },
          "relatedParty": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedParty"
            }
          },
          "resourceCharacteristic": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Characteristic"
            }
          },
          "resourceRelationship": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceRelationship"
            }
          },
          "resourceSpecification": {
            "$ref": "#/components/schemas/ResourceSpecificationRef"
          },
          "resourceStatus": {
            "type": "string",
            "enum": [
              "standby",
              "alarm",
              "available",
              "reserved",
              "unknown",
              "suspended"
            ]
          },
          "usageState": {
            "type": "string",
            "enum": [
              "idle",
              "active",
              "busy"
            ]
          },
          "@baseType": {
            "type": "string"
          },
          "@schemaLocation": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          }
        },
        "description": "The Resource 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"
            }
          }
        }
      }
    }
  }
}