{
  "openapi" : "3.1.0",
  "tags" : [ {
    "name" : "Albo Documents Sort Key Controller",
    "description" : "Albo Documents Sort Key APIs"
  }, {
    "name" : "Alive Controller",
    "description" : "Health related APIs"
  }, {
    "name" : "Application Sort Key Controller",
    "description" : "Application Sort Key APIs"
  }, {
    "name" : "Breadcrumb Controller",
    "description" : "UI Breadcrumbs APIs"
  }, {
    "name" : "Content Controller",
    "description" : "UI Content APIs"
  }, {
    "name" : "Menu Controller",
    "description" : "UI Menus APIs"
  }, {
    "name" : "Status Controller",
    "description" : "UI Status APIs"
  } ],
  "paths" : {
    "/api/albo-documents-sort-keys" : {
      "get" : {
        "summary" : "Get all albo documents sort keys",
        "tags" : [ "Albo Documents Sort Key Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          }
        }
      }
    },
    "/api/alive" : {
      "get" : {
        "tags" : [ "Alive Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          }
        },
        "summary" : "Alive"
      }
    },
    "/api/application-sort-keys" : {
      "get" : {
        "summary" : "Get all application sort keys",
        "tags" : [ "Application Sort Key Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/breadcrumbs" : {
      "post" : {
        "summary" : "Add a new breadcrumb",
        "tags" : [ "Breadcrumb Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BreadcrumbDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "get" : {
        "summary" : "Get all breadcrumbs",
        "tags" : [ "Breadcrumb Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/breadcrumbs/name/{name}" : {
      "get" : {
        "summary" : "Get breadcrumb by name",
        "tags" : [ "Breadcrumb Controller" ],
        "parameters" : [ {
          "name" : "name",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          }
        }
      }
    },
    "/api/breadcrumbs/{id}" : {
      "put" : {
        "summary" : "Update a breadcrumb",
        "tags" : [ "Breadcrumb Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BreadcrumbDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      },
      "delete" : {
        "summary" : "Delete a breadcrumb",
        "tags" : [ "Breadcrumb Controller" ],
        "parameters" : [ {
          "name" : "id",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/contents" : {
      "post" : {
        "summary" : "Create new content",
        "tags" : [ "Content Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContentNewDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "ADMIN" ]
        } ]
      }
    },
    "/api/contents/application/{application}/page/{page}/lang/{lang}" : {
      "get" : {
        "summary" : "Get content for application and page",
        "tags" : [ "Content Controller" ],
        "parameters" : [ {
          "name" : "application",
          "in" : "path",
          "required" : true,
          "schema" : {
            "$ref" : "#/components/schemas/UibmApplication"
          }
        }, {
          "name" : "lang",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "page",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          }
        }
      }
    },
    "/api/contents/cache/invalidate" : {
      "get" : {
        "summary" : "Invalidate content cache",
        "tags" : [ "Content Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          }
        }
      }
    },
    "/api/contents/edit/{pageId}" : {
      "put" : {
        "summary" : "Edit page of existing content",
        "tags" : [ "Content Controller" ],
        "parameters" : [ {
          "name" : "pageId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "integer",
            "format" : "int32"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ContentEditDto"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : { }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "ADMIN" ]
        } ]
      }
    },
    "/api/menus/dep" : {
      "get" : {
        "summary" : "Get Dep menus",
        "tags" : [ "Menu Controller" ],
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MenuDto"
                }
              }
            }
          }
        }
      }
    },
    "/api/menus/gepi" : {
      "post" : {
        "summary" : "Get GEPI menus by process roles",
        "tags" : [ "Menu Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "uniqueItems" : true,
                "items" : {
                  "$ref" : "#/components/schemas/ProcessRoleDto"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/MenuDto"
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    },
    "/api/status/resolve" : {
      "post" : {
        "summary" : "Map process status to applicative status",
        "tags" : [ "Status Controller" ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "type" : "array",
                "items" : {
                  "$ref" : "#/components/schemas/ProcessStatusDto"
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/AppStatusDto"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Not Authorized"
          },
          "403" : {
            "description" : "Not Allowed"
          },
          "400" : {
            "description" : "Bad Request"
          }
        },
        "security" : [ {
          "SecurityScheme" : [ "USER", "ADMIN" ]
        } ]
      }
    }
  },
  "components" : {
    "schemas" : {
      "AppStatusDto" : {
        "type" : "object",
        "required" : [ "processStatus" ],
        "properties" : {
          "processStatus" : {
            "type" : "string"
          },
          "appStatus" : {
            "type" : [ "string", "null" ]
          }
        }
      },
      "BreadcrumbDto" : {
        "type" : "object",
        "required" : [ "name", "breadcrumbItems" ],
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32"
          },
          "name" : {
            "type" : "string"
          },
          "breadcrumbItems" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/BreadcrumbItemDto"
            }
          }
        }
      },
      "BreadcrumbItemDto" : {
        "type" : "object",
        "required" : [ "code", "displayNameEn", "displayNameIt" ],
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32"
          },
          "code" : {
            "type" : "string"
          },
          "displayNameEn" : {
            "type" : "string"
          },
          "displayNameIt" : {
            "type" : "string"
          }
        }
      },
      "ContentEditDto" : {
        "type" : "object",
        "required" : [ "newBody" ],
        "properties" : {
          "pageId" : {
            "type" : "integer",
            "format" : "int32"
          },
          "newBody" : {
            "type" : "string"
          }
        }
      },
      "ContentNewDto" : {
        "type" : "object",
        "required" : [ "application", "language", "page", "body" ],
        "properties" : {
          "application" : {
            "type" : "string"
          },
          "language" : {
            "type" : "string"
          },
          "page" : {
            "type" : "string"
          },
          "body" : {
            "type" : "string"
          }
        }
      },
      "MenuDto" : {
        "type" : "object",
        "required" : [ "name", "menuItems" ],
        "properties" : {
          "name" : {
            "type" : "string"
          },
          "menuItems" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "$ref" : "#/components/schemas/MenuItemDto"
            }
          }
        }
      },
      "MenuItemDto" : {
        "type" : "object",
        "required" : [ "id", "descriptionIt" ],
        "properties" : {
          "id" : {
            "type" : "integer",
            "format" : "int32"
          },
          "descriptionEn" : {
            "type" : [ "string", "null" ]
          },
          "descriptionIt" : {
            "type" : "string"
          },
          "link" : {
            "type" : [ "string", "null" ]
          },
          "order" : {
            "type" : "integer",
            "format" : "int32"
          },
          "submenuItems" : {
            "type" : [ "array", "null" ],
            "items" : {
              "$ref" : "#/components/schemas/MenuItemDto"
            }
          }
        }
      },
      "ProcessRoleDto" : {
        "type" : "object",
        "required" : [ "organization", "roles" ],
        "properties" : {
          "organization" : {
            "type" : "string"
          },
          "roles" : {
            "type" : "array",
            "uniqueItems" : true,
            "items" : {
              "type" : "string"
            }
          }
        }
      },
      "ProcessStatusDto" : {
        "type" : "object",
        "required" : [ "processStatus" ],
        "properties" : {
          "processStatus" : {
            "type" : "string"
          }
        }
      },
      "UibmApplication" : {
        "type" : "string",
        "enum" : [ "DEPOSITO", "GEPI", "DASHBOARD", "UNKNOWN" ]
      }
    },
    "securitySchemes" : {
      "SecurityScheme" : {
        "type" : "http",
        "scheme" : "bearer",
        "bearerFormat" : "JWT",
        "description" : "Authentication"
      }
    }
  },
  "info" : {
    "title" : "Backend for Frontends API",
    "version" : "0.16.7",
    "description" : "Backend for Frontends API",
    "contact" : {
      "name" : "IBM Consulting Italy",
      "email" : "info@it.ibm.com"
    }
  }
}