{
  "swagger" : "2.0",
  "info" : {
    "description" : "TMF634 Resource Catalog Management",
    "version" : "2.0.0",
    "title" : "Resource Catalog Management"
  },
  "basePath" : "/resourceCatalogManagement/v2/",
  "tags" : [ {
    "name" : "resourceCatalog",
    "description" : ""
  }, {
    "name" : "resourceCategory",
    "description" : ""
  }, {
    "name" : "resourceCandidate",
    "description" : ""
  }, {
    "name" : "resourceSpecification",
    "description" : ""
  }, {
    "name" : "plaSpecification",
    "description" : ""
  } ],
  "schemes" : [ "http", "https" ],
  "consumes" : [ "application/json" ],
  "produces" : [ "application/json" ],
  "paths" : {
    "/resourceCatalog" : {
      "get" : {
        "tags" : [ "resourceCatalog" ],
        "summary" : "List or find 'ResourceCatalog' entities",
        "operationId" : "listResourceCatalogs",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Successful",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResourceCatalog"
              }
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceCatalog/{id}" : {
      "get" : {
        "tags" : [ "resourceCatalog" ],
        "summary" : "Retrieves a 'ResourceCatalog' by Id",
        "operationId" : "listResourceCatalog",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Identifier of the Resource Catalog",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Successful",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResourceCatalog"
              }
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceCategory" : {
      "get" : {
        "tags" : [ "resourceCategory" ],
        "summary" : "List or find 'ResourceCategory' entities",
        "operationId" : "listResourceCategories",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Successful",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResourceCategory"
              }
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceCategory/{id}" : {
      "get" : {
        "tags" : [ "resourceCategory" ],
        "summary" : "Retrieves a 'ResourceCategory' by Id",
        "operationId" : "listResourceCategory",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Identifier of the Resource Category",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Successful",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResourceCategory"
              }
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceCandidate" : {
      "get" : {
        "tags" : [ "resourceCandidate" ],
        "summary" : "List or find 'ResourceCandidate' entities",
        "operationId" : "listResourceCandidates",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Successful",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResourceCandidate"
              }
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceCandidate/{id}" : {
      "get" : {
        "tags" : [ "resourceCandidate" ],
        "summary" : "Retrieves a 'ResourceCandidate' by Id",
        "operationId" : "listResourceCandidate",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Identifier of the Resource Candidate ",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "Successful",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResourceCandidate"
              }
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceSpecification" : {
      "get" : {
        "tags" : [ "resourceSpecification" ],
        "summary" : "listResourceSpecifications",
        "description" : "List or find 'ResourceSpecification' entities",
        "operationId" : "listResourceSpecifications",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "ResourceSpecification",
            "schema" : {
              "$ref" : "#/definitions/ResourceSpecification"
            }
          },
          "404" : {
            "description" : "Not Found\n\nList of supported error codes:\n- 60: Resource not found"
          },
          "500" : {
            "description" : "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error"
          }
        },
        "deprecated" : false
      }
    },
    "/resourceSpecification/{id}" : {
      "get" : {
        "tags" : [ "resourceSpecification" ],
        "summary" : "Retrieves a 'ResourceSpecification' by Id",
        "description" : "List or find 'ResourceSpecification' entities",
        "operationId" : "listResourceSpecification",
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "description" : "Identifier of the Resource Specification ",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "ResourceSpecification",
            "schema" : {
              "$ref" : "#/definitions/ResourceSpecification"
            }
          },
          "404" : {
            "description" : "Not Found"
          },
          "500" : {
            "description" : "Internal Server Error"
          }
        },
        "deprecated" : false
      }
    },
    "/plaSpecification" : {
      "get" : {
        "tags" : [ "plaSpecification" ],
        "summary" : "listResourceSpecification",
        "description" : "List or find 'PlaSpecification' entities",
        "operationId" : "listPlaSpecifications",
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "PlaSpecification",
            "schema" : {
              "$ref" : "#/definitions/PlaSpecification"
            }
          },
          "404" : {
            "description" : "Not Found\n\nList of supported error codes:\n- 60: Resource not found"
          },
          "500" : {
            "description" : "Internal Server Error\n\nList of supported error codes:\n- 1: Internal error"
          }
        },
        "deprecated" : false
      }
    }
  },
  "definitions" : {
    "ResourceSpecification" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of this REST resource"
        },
        "href" : {
          "type" : "string",
          "description" : "Hyperlink reference to this REST resource"
        },
        "name" : {
          "type" : "string",
          "description" : "Name given to this REST resource"
        },
        "description" : {
          "type" : "string",
          "description" : "Description of this REST resource"
        },
        "version" : {
          "type" : "string",
          "description" : "Resource Specification version"
        },
        "lastUpdate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Date and time of the last update of this REST resource"
        },
        "lifecycleStatus" : {
          "type" : "string",
          "description" : "Used to indicate the current lifecycle status of the resource specification"
        },
        "category" : {
          "type" : "string",
          "description" : "Category of the target resource like NetworkConnectivity, PhysicalLinks, Generic, L2Network and so on."
        },
        "resourceSpecCharacteristic" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ResourceSpecCharacteristic"
          }
        }
      },
      "description" : "Resources are physical or non-physical components (or some combination of these) within an enterprise's infrastructure or inventory. They are typically consumed or used by services (for example a physical port assigned to a service) or contribute to the realization of a Product (for example, a SIM card). They can be drawn from the Application, Computing and Network domains, and include, for example, Network Elements, software, IT systems, content and information, and technology components.\nA ResourceSpecification is an abstract base class for representing a generic means for implementing a particular type of Resource. In essence, a ResourceSpecification defines the common attributes and relationships of a set of related Resources, while Resource defines a specific instance that is based on a particular ResourceSpecification."
    },
    "ResourceSpecCharacteristic" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string",
          "description" : "A word, term, or phrase by which this characteristic specification is known and distinguished from other characteristic specifications."
        },
        "description" : {
          "type" : "string",
          "description" : "A narrative that explains the CharacteristicSpecification."
        },
        "valueType" : {
          "type" : "string",
          "description" : "A kind of value that the characteristic can take on, such as numeric, text and so forth"
        },
        "resourceSpecCharacteristicValue" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ResourceSpecCharacteristicValue"
          }
        }
      },
      "description" : "This class defines the characteristic features of a resource specification. Every ResourceSpecification has a variety of important attributes, methods, constraints, and\nrelationships, which distinguish a resource specification from other resource specifications."
    },
    "ResourceSpecCharacteristicValue" : {
      "type" : "object",
      "properties" : {
        "valueType" : {
          "type" : "string",
          "description" : "A kind of value that the characteristic value can take on, such as numeric, text and so forth"
        },
        "seqNum" : {
          "type" : "integer"
        }
      },
      "description" : "A number or text that can be assigned to a ResourceSpecCharacteristic."
    },
    "PlaSpecification" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of this REST resource"
        },
        "href" : {
          "type" : "string",
          "description" : "Hyperlink reference to this REST resource"
        },
        "name" : {
          "type" : "string",
          "description" : "Name given to this REST resource"
        },
        "description" : {
          "type" : "string",
          "description" : "Description of this REST resource"
        },
        "version" : {
          "type" : "string",
          "description" : "Resource Specification version"
        },
        "lastUpdate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Date and time of the last update of this REST resource"
        },
        "lifecycleStatus" : {
          "type" : "string",
          "description" : "Used to indicate the current lifecycle status of the resource specification"
        }
      },
      "description" : "Resources are physical or non-physical components (or some combination of these) within an enterprise's infrastructure or inventory."
    },
    "ResourceCatalog" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of the Catalog"
        },
        "href" : {
          "type" : "string",
          "description" : "Unique reference of the catalog"
        },
        "name" : {
          "type" : "string",
          "description" : "Name of the catalog"
        },
        "description" : {
          "type" : "string",
          "description" : "Description of this catalog"
        },
        "version" : {
          "type" : "string",
          "description" : "Catalog version"
        },
        "lastUpdate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Date and time of the last update"
        },
        "lifecycleStatus" : {
          "type" : "string",
          "description" : "Used to indicate the current lifecycle status"
        },
        "category" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/CategoryRef"
          }
        }
      },
      "description" : "The root entity for resource catalog management"
    },
    "CategoryRef" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique reference of the category"
        },
        "href" : {
          "type" : "string",
          "description" : "Unique reference of the category"
        },
        "version" : {
          "type" : "string",
          "description" : "Category version"
        },
        "name" : {
          "type" : "string",
          "description" : "Name of the category"
        }
      },
      "description" : "Category reference."
    },
    "ResourceCategory" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of the category"
        },
        "href" : {
          "type" : "string",
          "description" : "Hyperlink reference to the category"
        },
        "name" : {
          "type" : "string",
          "description" : "Name of the category"
        },
        "description" : {
          "type" : "string",
          "description" : "Description of the category"
        },
        "version" : {
          "type" : "string",
          "description" : "Category version"
        },
        "lifecycleStatus" : {
          "type" : "string",
          "description" : "Used to indicate the current lifecycle status"
        },
        "lastUpdate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Date and time of the last update"
        },
        "isRoot" : {
          "type" : "boolean",
          "description" : "If true, this Boolean indicates that the category is a root of categories"
        },
        "resourceCandidate" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/ResourceCandidateRef"
          }
        }
      },
      "description" : "The (resource) category resource is used to group resource candidates in logical containers. Categories can contain other categories."
    },
    "ResourceCandidateRef" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of the resource candidate"
        },
        "href" : {
          "type" : "string",
          "description" : "Reference of the resource candidate"
        },
        "version" : {
          "type" : "string",
          "description" : "Version of the resource candidate"
        },
        "name" : {
          "type" : "string",
          "description" : "Name of the resource candidate"
        }
      },
      "description" : "ResourceCandidate reference: A resource candidate is an entity that makes a ResourceSpecification available to a catalog."
    },
    "ResourceCandidate" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of this REST resource"
        },
        "href" : {
          "type" : "string",
          "description" : "Hyperlink reference to this REST resource"
        },
        "name" : {
          "type" : "string",
          "description" : "Name given to this REST resource"
        },
        "description" : {
          "type" : "string",
          "description" : "Description of this REST resource"
        },
        "version" : {
          "type" : "string",
          "description" : "the version of resource candidate"
        },
        "lastUpdate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Date and time of the last update of this REST resource"
        },
        "lifecycleStatus" : {
          "type" : "string",
          "description" : "Used to indicate the current lifecycle status of the resource candidate."
        },
        "category" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/CategoryRef"
          }
        },
        "resourceSpecification" : {
          "$ref" : "#/definitions/ResourceSpecificationRef"
        }
      },
      "description" : "ResourceCandidate is an entity that makes a resource specification available to a catalog."
    },
    "ResourceSpecificationRef" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string",
          "description" : "Unique identifier of the resource specification"
        },
        "href" : {
          "type" : "string",
          "description" : "Reference of the resource specification"
        },
        "name" : {
          "type" : "string",
          "description" : "Name of the requiredResourceSpecification"
        },
        "version" : {
          "type" : "string",
          "description" : "Resource specification version"
        }
      },
      "description" : "Resource Specification reference: The ResourceSpecification is required to realize a ProductSpecification."
    }
  }
}