{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenWarehouse.auth.api",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "/auth/"
    }
  ],
  "paths": {
    "/Account/DeleteUser": {
      "delete": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteUserRequestModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/DeleteUserRequestModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteUserReturnModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteUserReturnModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteUserReturnModel"
                }
              }
            }
          }
        }
      }
    },
    "/Account/CreateUser": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/CreateUserModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUserModelReturn"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUserModelReturn"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateUserModelReturn"
                }
              }
            }
          }
        }
      }
    },
    "/Account/ChangePassword": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePassword"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/ChangePassword"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePasswordReturn"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePasswordReturn"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePasswordReturn"
                }
              }
            }
          }
        }
      }
    },
    "/Account/DeactivateToken": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeactiveTokenModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeactiveTokenModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeactiveTokenModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              }
            }
          }
        }
      }
    },
    "/Account/AddClaimsToUser": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddClaimsToUserModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AddClaimsToUserModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AddClaimsToUserModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AddClaimsToUserReturnModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddClaimsToUserReturnModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddClaimsToUserReturnModel"
                }
              }
            }
          }
        }
      }
    },
    "/Account/GetAllClaimsUser": {
      "get": {
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AddClaimsToUserReturnModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddClaimsToUserReturnModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddClaimsToUserReturnModel"
                }
              }
            }
          }
        }
      }
    },
    "/Account/UpdateUserEmail": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeEmailRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeEmailRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangeEmailRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeEmailRespond"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeEmailRespond"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangeEmailRespond"
                }
              }
            }
          }
        }
      }
    },
    "/Account/UpdatePhoneNumber": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePhoneNumberRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePhoneNumberRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePhoneNumberRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePhoneNumberRespond"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePhoneNumberRespond"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChangePhoneNumberRespond"
                }
              }
            }
          }
        }
      }
    },
    "/Account/GetMyDetail": {
      "post": {
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AccountDetailRespond"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountDetailRespond"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountDetailRespond"
                }
              }
            }
          }
        }
      }
    },
    "/Account/GetListOfUsers": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountListsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountListsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AccountListsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AccountListsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountListsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountListsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/Account/EditAccount": {
      "post": {
        "tags": [
          "Account"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditAccountRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EditAccountRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EditAccountRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EditAccountRespond"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EditAccountRespond"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EditAccountRespond"
                }
              }
            }
          }
        }
      }
    },
    "/Login": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequestModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/LoginRequestModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LoginModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginModel"
                }
              }
            }
          }
        }
      }
    },
    "/Register": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/RegisterModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterReturnModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterReturnModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterReturnModel"
                }
              }
            }
          }
        }
      }
    },
    "/LogOut": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/LogOutModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogOutModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogOutModel"
                }
              }
            }
          }
        }
      }
    },
    "/RegenerateToken": {
      "get": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RegeneratedTokenModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegeneratedTokenModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegeneratedTokenModel"
                }
              }
            }
          }
        }
      }
    },
    "/DeleteExpiredToken": {
      "delete": {
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32"
                }
              }
            }
          }
        }
      }
    },
    "/TokenIsLock": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenAskIfIsLockModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenAskIfIsLockModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TokenAskIfIsLockModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/Privilege/GetUserPrivilege": {
      "post": {
        "tags": [
          "Privilege"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/Privilege/CreatePrivilage": {
      "post": {
        "tags": [
          "Privilege"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrivilageModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrivilageModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePrivilageModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Role/GetRoles": {
      "post": {
        "tags": [
          "Role"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoleListModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleListModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleListModel"
                }
              }
            }
          }
        }
      }
    },
    "/Role/GetUserRoles": {
      "post": {
        "tags": [
          "Role"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserRoleReqestModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/UserRoleReqestModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRoleModel"
                }
              }
            }
          }
        }
      }
    },
    "/Role/CreateRole": {
      "post": {
        "tags": [
          "Role"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              }
            }
          }
        }
      }
    },
    "/Role/AddRoleToUser": {
      "post": {
        "tags": [
          "Role"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRoleToUserModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/AddRoleToUserModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              }
            }
          }
        }
      }
    },
    "/Role/EditRolePrivilage": {
      "post": {
        "tags": [
          "Role"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditRoleModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/EditRoleModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/RoleModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleModel"
                }
              }
            }
          }
        }
      }
    },
    "/Role/DeleteRole": {
      "delete": {
        "tags": [
          "Role"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteRoleModel"
              }
            },
            "application/xml": {
              "schema": {
                "$ref": "#/components/schemas/DeleteRoleModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OkModel"
                }
              }
            }
          }
        }
      }
    },
    "/Service/GetTokenForService": {
      "post": {
        "tags": [
          "Service"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateServiceTokenModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateServiceTokenModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateServiceTokenModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateServiceTokenReturnModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateServiceTokenReturnModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateServiceTokenReturnModel"
                }
              }
            }
          }
        }
      }
    },
    "/Service/TestServiceToken": {
      "post": {
        "tags": [
          "Service"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/Ping": {
      "get": {
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PingModel"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingModel"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingModel"
                }
              }
            }
          }
        }
      }
    },
    "/TestAuthStatus": {
      "get": {
        "tags": [
          "Tools"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "boolean"
                }
              },
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              },
              "text/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/openid-configuration": {
      "get": {
        "tags": [
          "WellKnown"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/OpenIdConfiguration"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpenIdConfiguration"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpenIdConfiguration"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/jwks": {
      "get": {
        "tags": [
          "WellKnown"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/JwksResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JwksResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/JwksResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountDetailRespond": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "dialCode": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "userName": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "problems": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AccountListsRequest": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "AccountListsResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "nextPageExist": {
            "type": "boolean"
          },
          "lastPageNum": {
            "type": "integer",
            "format": "int32"
          },
          "accountsDetail": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountDetailRespond"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddClaimsToUserModel": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "issuer": {
            "type": "string",
            "nullable": true
          },
          "newClaims": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddClaimsToUserReturnModel": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "isSucess": {
            "type": "boolean"
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "allUserClaims": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AddRoleToUserModel": {
        "type": "object",
        "properties": {
          "userIdentify": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "nullable": true
          },
          "roleIdentify": {
            "maxLength": 40,
            "minLength": 1,
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChangeEmailRequest": {
        "type": "object",
        "properties": {
          "newEmail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChangeEmailRespond": {
        "type": "object",
        "properties": {
          "newEmail": {
            "type": "string",
            "nullable": true
          },
          "oldEmail": {
            "type": "string",
            "nullable": true
          },
          "valSuccess": {
            "type": "boolean"
          },
          "updateSuccess": {
            "type": "boolean"
          },
          "problems": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChangePassword": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "nullable": true
          },
          "newPassword1": {
            "type": "string",
            "nullable": true
          },
          "newPassword2": {
            "type": "string",
            "nullable": true
          },
          "logOutAllSession": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ChangePasswordReturn": {
        "type": "object",
        "properties": {
          "isSuccess": {
            "type": "boolean"
          },
          "mess": {
            "type": "string",
            "nullable": true
          },
          "lockedTokenCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ChangePhoneNumberRequest": {
        "type": "object",
        "properties": {
          "prefix": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChangePhoneNumberRespond": {
        "type": "object",
        "properties": {
          "prefix": {
            "type": "string",
            "nullable": true
          },
          "number": {
            "type": "string",
            "nullable": true
          },
          "oldPrefix": {
            "type": "string",
            "nullable": true
          },
          "oldPhone": {
            "type": "string",
            "nullable": true
          },
          "valSuccess": {
            "type": "boolean"
          },
          "updateSuccess": {
            "type": "boolean"
          },
          "problems": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePrivilageModel": {
        "type": "object",
        "properties": {
          "privilage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateRoleModel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "privilage": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "forcePrivilage": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CreateServicePrivilageResult": {
        "type": "object",
        "properties": {
          "privilage": {
            "type": "string",
            "nullable": true
          },
          "isCreated": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateServiceRoleResult": {
        "type": "object",
        "properties": {
          "isSuccessed": {
            "type": "boolean"
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateServiceTokenModel": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "servicePrivilages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "serviceRoles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleModel"
            },
            "nullable": true
          },
          "issuer": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateServiceTokenReturnModel": {
        "type": "object",
        "properties": {
          "serviceName": {
            "type": "string",
            "nullable": true
          },
          "serviceUsername": {
            "type": "string",
            "nullable": true
          },
          "isSuccess": {
            "type": "boolean"
          },
          "userAllereadyExist": {
            "type": "boolean"
          },
          "serviceToken": {
            "type": "string",
            "nullable": true
          },
          "privilageResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateServicePrivilageResult"
            },
            "nullable": true
          },
          "roleResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateServiceRoleResult"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateUserModel": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "dialcode": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateUserModelReturn": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "dialcode": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleStatus"
            },
            "nullable": true
          },
          "returnMess": {
            "type": "string",
            "nullable": true
          },
          "newUserId": {
            "type": "string",
            "nullable": true
          },
          "isCreated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "DeactiveTokenModel": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteRoleModel": {
        "type": "object",
        "properties": {
          "roleIdentify": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteUserRequestModel": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteUserReturnModel": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "operationMessage": {
            "type": "string",
            "nullable": true
          },
          "isOperationSuccess": {
            "type": "boolean"
          },
          "dedeltedTokenCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "EditAccountRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "newUserName": {
            "type": "string",
            "nullable": true
          },
          "newEmail": {
            "type": "string",
            "nullable": true
          },
          "newDialCode": {
            "type": "string",
            "nullable": true
          },
          "newPhone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EditAccountRespond": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "newUserName": {
            "type": "string",
            "nullable": true
          },
          "newEmail": {
            "type": "string",
            "nullable": true
          },
          "newDialCode": {
            "type": "string",
            "nullable": true
          },
          "newPhone": {
            "type": "string",
            "nullable": true
          },
          "userNameEdited": {
            "type": "boolean",
            "default": false
          },
          "emailEdited": {
            "type": "boolean",
            "default": false
          },
          "phoneEdited": {
            "type": "boolean",
            "default": false
          },
          "success": {
            "type": "boolean",
            "default": false
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "EditRoleModel": {
        "type": "object",
        "properties": {
          "roleIdentify": {
            "type": "string",
            "nullable": true
          },
          "forceAddedPrivilage": {
            "type": "boolean",
            "default": false
          },
          "addPrivilage": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "deletePrivilage": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "newName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Jwk": {
        "type": "object",
        "properties": {
          "kty": {
            "type": "string",
            "nullable": true
          },
          "e": {
            "type": "string",
            "nullable": true
          },
          "n": {
            "type": "string",
            "nullable": true
          },
          "use": {
            "type": "string",
            "nullable": true
          },
          "alg": {
            "type": "string",
            "nullable": true
          },
          "kid": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JwksResponse": {
        "type": "object",
        "properties": {
          "keys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Jwk"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LogOutModel": {
        "type": "object",
        "properties": {
          "logOutSuccess": {
            "type": "boolean"
          },
          "mess": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LoginModel": {
        "type": "object",
        "properties": {
          "login": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "token": {
            "type": "string",
            "nullable": true
          },
          "exp": {
            "type": "integer",
            "format": "int64"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "accountProblem": {
            "type": "string",
            "nullable": true
          },
          "isLogged": {
            "type": "boolean"
          },
          "requiresTwoFactor": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "LoginRequestModel": {
        "required": [
          "login",
          "pass"
        ],
        "type": "object",
        "properties": {
          "login": {
            "minLength": 1,
            "type": "string"
          },
          "pass": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "OkModel": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "isSuccess": {
            "type": "boolean"
          },
          "value": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "OpenIdConfiguration": {
        "type": "object",
        "properties": {
          "issuer": {
            "type": "string",
            "nullable": true
          },
          "authorizationEndpoint": {
            "type": "string",
            "nullable": true
          },
          "tokenEndpoint": {
            "type": "string",
            "nullable": true
          },
          "jwksUri": {
            "type": "string",
            "nullable": true
          },
          "responseTypesSupported": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "subjectTypesSupported": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "idTokenSigningAlgValuesSupported": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PingModel": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "time": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "RegeneratedTokenModel": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          },
          "mess": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegisterModel": {
        "type": "object",
        "properties": {
          "registerToken": {
            "type": "string",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RegisterReturnModel": {
        "type": "object",
        "properties": {
          "isCreated": {
            "type": "boolean"
          },
          "authToken": {
            "type": "string",
            "nullable": true
          },
          "problemWithUsername": {
            "type": "string",
            "nullable": true
          },
          "problemWitbEmail": {
            "type": "string",
            "nullable": true
          },
          "problemWithPassword": {
            "type": "string",
            "nullable": true
          },
          "problemWithToken": {
            "type": "string",
            "nullable": true
          },
          "otherWithOtherProblem": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleListModel": {
        "type": "object",
        "properties": {
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleModel": {
        "type": "object",
        "properties": {
          "roleName": {
            "type": "string",
            "nullable": true
          },
          "isGlobalAdmin": {
            "type": "boolean",
            "default": false
          },
          "privilage": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RoleStatus": {
        "type": "object",
        "properties": {
          "exist": {
            "type": "boolean"
          },
          "added": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "mess": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TokenAskIfIsLockModel": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserRoleModel": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoleModel"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserRoleReqestModel": {
        "type": "object",
        "properties": {
          "userIdentify": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Please insert JWT with Bearer into field",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ]
}