{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "BaSyx Registry HTTP REST-API",
    "description" : "The full OpenAPI 3.0.1 specification of the BaSyx Registry HTTP REST-API",
    "contact" : {
      "name" : "Constantin Ziesche",
      "url" : "https://www.bosch.com/de/",
      "email" : "constantin.ziesche@bosch.com"
    },
    "license" : {
      "name" : "EPL-2.0",
      "url" : "https://www.eclipse.org/legal/epl-2.0/"
    },
    "version" : "v1"
  },
  "servers" : [ {
    "url" : "http://{authority}/",
    "description" : "This is the unsecure server to access the BaSyx Registry",
    "variables" : {
      "authority" : {
        "default" : "localhost:4999",
        "description" : "The authority is the server url (made of IP-Address or DNS-Name, user information, and/or port information) of the hosting environment for the BaSyx Registry"
      }
    }
  }, {
    "url" : "https://{authority}/",
    "description" : "This is the secure server to access the BaSyx Registry",
    "variables" : {
      "authority" : {
        "default" : "localhost:4999",
        "description" : "The authority is the server url (made of IP-Address or DNS-Name, user information, and/or port information) of the hosting environment for the BaSyx Registry"
      }
    }
  } ],
  "paths" : {
    "/api/v1/registry" : {
      "get" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Retrieves all registered Asset Administration Shells within system (e.g. Station, Line, Plant, Area, etc.) defined by the Registry",
        "operationId" : "GetAllAssetAdministrationShellDescriptors",
        "responses" : {
          "200" : {
            "description" : "Returns a list of found Asset Administration Shell Descriptors",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/AssetAdministrationShellDescriptor"
                  }
                }
              }
            }
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/registry/{aasId}" : {
      "get" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Retrieves a specific Asset Administration Shell registration",
        "operationId" : "GetAssetAdministrationShellDescriptor",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Returns the requested Asset Administration Shell",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/AssetAdministrationShellDescriptor"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          },
          "404" : {
            "description" : "No Asset Administration Shell with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      },
      "put" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Creates a new or updates an existing Asset Administration Shell registration at the Registry",
        "operationId" : "RegisterAssetAdministrationShell",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        } ],
        "requestBody" : {
          "description" : "The Asset Administration Shell Descriptor",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/AssetAdministrationShellDescriptor"
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "The Asset Administration Shell's registration was successfully renewed"
          },
          "204" : {
            "description" : "Success",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          },
          "400" : {
            "description" : "The syntax of the passed Asset Administration Shell is not valid or malformed request"
          },
          "404" : {
            "description" : "No Asset Administration Shell with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Deletes the Asset Administration Shell registration from the Registry",
        "operationId" : "UnregisterAssetAdministrationShell",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The Asset Administration Shell was deleted successfully"
          },
          "204" : {
            "description" : "Success",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          },
          "404" : {
            "description" : "No Asset Administration Shell with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/registry/{aasId}/submodels/{submodelId}" : {
      "put" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Creates a new or updates an existing Submodel registration at a specific Asset Administration Shell registered at the Registry",
        "operationId" : "RegisterSubmodelAtAssetAdministrationShell",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        }, {
          "name" : "submodelId",
          "in" : "path",
          "description" : "The Submodel's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Submodel's unique id",
            "nullable" : true
          }
        } ],
        "requestBody" : {
          "description" : "The Submodel Descriptor",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/SubmodelDescriptor"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "description" : "The Submodel was created successfully",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/SubmodelDescriptor"
                }
              }
            }
          },
          "400" : {
            "description" : "The syntax of the passed Submodel is not valid or malformed request"
          },
          "404" : {
            "description" : "No Asset Administration Shell with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      },
      "get" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Retrieves the Submodel registration from a specific Asset Administration Shell registered at the Registry",
        "operationId" : "GetSubmodelDescriptorFromAssetAdministrationShell",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        }, {
          "name" : "submodelId",
          "in" : "path",
          "description" : "The Submodel's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Submodel's unique id",
            "nullable" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Returns the requested Submodels Descriptor",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/SubmodelDescriptor"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          },
          "404" : {
            "description" : "No Asset Administration Shell / Submodel with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      },
      "delete" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Unregisters the Submodel from a specific Asset Administration Shell registered at the Registry",
        "operationId" : "DeleteSubmodelDescriptorFromAssetAdministrationShell",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        }, {
          "name" : "submodelId",
          "in" : "path",
          "description" : "The Submodel's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Submodel's unique id",
            "nullable" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "The Submodel Descriptor was successfully unregistered"
          },
          "204" : {
            "description" : "Success",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          },
          "404" : {
            "description" : "No Asset Administration Shell / Submodel with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/registry/{aasId}/submodels" : {
      "get" : {
        "tags" : [ "AssetAdministrationShellRegistry" ],
        "summary" : "Retrieves all Submodel registrations from a specific Asset Administration Shell registered at the Registry",
        "operationId" : "GetAllSubmodelDescriptorsFromAssetAdministrationShell",
        "parameters" : [ {
          "name" : "aasId",
          "in" : "path",
          "description" : "The Asset Administration Shell's unique id",
          "required" : true,
          "schema" : {
            "type" : "string",
            "description" : "The Asset Administration Shell's unique id",
            "nullable" : true
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Returns a list of found Submodels Descriptors",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/SubmodelDescriptor"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request"
          },
          "404" : {
            "description" : "No Asset Administration Shell with passed id found"
          },
          "default" : {
            "description" : "Unexpected error",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "https://api.swaggerhub.com/domains/BaSyx/SharedModels/v1#/components/schemas/Result"
                }
              }
            }
          }
        }
      }
    }
  },
  "tags" : [ {
    "name" : "AssetAdministrationShellRegistry",
    "description" : "The Http-Controller implementation of the IAssetAdministrationShellRegistry interface"
  } ]
}