{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Kodeverk-SSKK",
    "description" : "Tjeneste for å levere kodeverk for domenet Systemstøtte Kjøttkontroll",
    "contact" : {
      "name" : "Brukerstøtte",
      "url" : "https://www.mattilsynet.no",
      "email" : "brukerstotte@mattilsynet.no"
    },
    "version" : "v1.0.0"
  },
  "servers" : [ {
    "url" : "https://kodeverk.kjottkontroll.mattilsynet.io",
    "description" : "Generated server url"
  } ],
  "tags" : [ {
    "name" : "Relasjoner",
    "description" : "Endepunkter for å hente realasjoner og kodeverk via relasjonerfor ett slakteri."
  }, {
    "name" : "Kodeverk",
    "description" : "Endepunkter for å hente kodeverk"
  } ],
  "paths" : {
    "/v1/relasjoner" : {
      "get" : {
        "tags" : [ "Relasjoner" ],
        "summary" : "Gir en liste med navn på alle tilgjengelig relasjoner",
        "operationId" : "getRelationList",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionModelRelationName"
                }
              }
            }
          }
        }
      }
    },
    "/v1/relasjoner/{relationName}" : {
      "get" : {
        "tags" : [ "Relasjoner" ],
        "summary" : "Hent liste med til og fra for gitt relasjon.",
        "operationId" : "getRelationByName",
        "parameters" : [ {
          "name" : "relationName",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/KodeverkRelationMapping"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/relasjoner/{relationName}/{fromCodeType}/{fromCode}" : {
      "get" : {
        "tags" : [ "Relasjoner" ],
        "summary" : "Hent kodeverk koder via relasjon, type og kode.",
        "operationId" : "getRelatedCodesFromTypeAndCode",
        "parameters" : [ {
          "name" : "relationName",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "fromCodeType",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "fromCode",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionModelKodeverkKode"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kodeverk" : {
      "get" : {
        "tags" : [ "Kodeverk" ],
        "summary" : "Gir en liste med navn på alle tilgjengelig kodeverk",
        "operationId" : "getKodeverkList",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionModelKodeverkType"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kodeverk/{codeType}" : {
      "get" : {
        "tags" : [ "Kodeverk" ],
        "summary" : "Hent kodeverkshierarki fra rot-nivå.",
        "operationId" : "getKodeverk",
        "parameters" : [ {
          "name" : "codeType",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "filter",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "rootCode",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeInactive",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/KodeverkKode"
                }
              }
            }
          }
        }
      }
    },
    "/v1/kodeverk/{codeType}/{codeString}" : {
      "get" : {
        "tags" : [ "Kodeverk" ],
        "summary" : "Hent kodeverkshierarki med spesifisert nivå via kodeString parameter.",
        "operationId" : "getKodeverkForCodeId",
        "parameters" : [ {
          "name" : "codeType",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "codeString",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "filter",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "includeInactive",
          "in" : "query",
          "required" : false,
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/KodeverkKode"
                }
              }
            }
          }
        }
      }
    },
    "/" : {
      "get" : {
        "tags" : [ "index-controller" ],
        "operationId" : "index",
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/hal+json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CollectionModelUnit"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "CollectionModelRelationName" : {
        "type" : "object",
        "properties" : {
          "_embedded" : {
            "type" : "object",
            "properties" : {
              "relasjoner" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/RelationName"
                }
              }
            }
          },
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        }
      },
      "RelationName" : {
        "type" : "object",
        "properties" : {
          "relationName" : {
            "type" : "string"
          },
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        },
        "required" : [ "relationName" ]
      },
      "KodeverkKodeEntity" : {
        "type" : "object",
        "properties" : {
          "codeType" : {
            "type" : "string"
          },
          "code" : {
            "type" : "string"
          },
          "displayNames" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            }
          },
          "valid" : {
            "type" : "boolean"
          },
          "children" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/KodeverkKodeEntity"
            }
          },
          "versionData" : {
            "type" : [ "string", "null" ]
          },
          "filter" : {
            "type" : [ "string", "null" ]
          },
          "attributes" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "type" : "string"
            }
          }
        },
        "required" : [ "code", "codeType", "displayNames", "valid" ]
      },
      "KodeverkRelationMapping" : {
        "type" : "object",
        "properties" : {
          "fromCodes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/KodeverkKodeEntity"
            }
          },
          "toCodes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/KodeverkKodeEntity"
            }
          }
        },
        "required" : [ "fromCodes", "toCodes" ]
      },
      "CollectionModelKodeverkKode" : {
        "type" : "object",
        "properties" : {
          "_embedded" : {
            "type" : "object",
            "properties" : {
              "kodeverkkoder" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/KodeverkKode"
                }
              }
            }
          },
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        }
      },
      "KodeverkKode" : {
        "type" : "object",
        "description" : "Representasjon av KodeverkKode",
        "properties" : {
          "codeType" : {
            "type" : "string",
            "description" : "Typen til koden"
          },
          "codeString" : {
            "type" : "string",
            "description" : "Identifikatoren til koden"
          },
          "displayNames" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Liste over beskrivelse til koden på ulike målformer og språk"
          },
          "valid" : {
            "type" : "boolean",
            "description" : "Indikerer om koden er gyldig/aktiv"
          },
          "children" : {
            "type" : [ "array", "null" ],
            "description" : "Liste over barnenodene til koden. Samme objekt struktur som koder",
            "items" : {
              "$ref" : "#/components/schemas/KodeverkKode"
            }
          },
          "versionData" : {
            "type" : [ "string", "null" ],
            "description" : "Kodens versjon"
          },
          "filter" : {
            "type" : [ "string", "null" ],
            "description" : "Kodens filterverdier separert med |"
          },
          "attributes" : {
            "type" : [ "object", "null" ],
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Andre attributter som hører til koden med verdier adskilt av |"
          },
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        },
        "required" : [ "codeString", "codeType", "displayNames", "valid" ]
      },
      "CollectionModelKodeverkType" : {
        "type" : "object",
        "properties" : {
          "_embedded" : {
            "type" : "object",
            "properties" : {
              "kodeverk" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/KodeverkType"
                }
              }
            }
          },
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        }
      },
      "KodeverkType" : {
        "type" : "object",
        "properties" : {
          "codeType" : {
            "type" : "string"
          },
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        },
        "required" : [ "codeType" ]
      },
      "CollectionModelUnit" : {
        "type" : "object",
        "properties" : {
          "_links" : {
            "$ref" : "#/components/schemas/Links"
          }
        }
      },
      "Link" : {
        "type" : "object",
        "properties" : {
          "href" : {
            "type" : "string"
          },
          "hreflang" : {
            "type" : "string"
          },
          "title" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          },
          "deprecation" : {
            "type" : "string"
          },
          "profile" : {
            "type" : "string"
          },
          "name" : {
            "type" : "string"
          },
          "templated" : {
            "type" : "boolean"
          }
        }
      },
      "Links" : {
        "type" : "object",
        "additionalProperties" : {
          "$ref" : "#/components/schemas/Link"
        }
      }
    }
  }
}