Skip to content
Last updated
{
  "openapi": "3.1.0",
  "info": {
    "title": "Namirial Wallet Platform",
    "summary": "\n",
    "description": "\n",
    "contact": {
      "email": "l.castaldo@namirial.com"
    },
    "version": "0.0.1"
  },
  "servers": [
    {
      "url": "https://wallet-studio.test.namirial.com"
    }
  ],
  "paths": {
    "/api/v1/user/": {
      "get": {
        "tags": [
          "User API"
        ],
        "summary": "get user list",
        "operationId": "user_list_api_v1_user__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for username. Performs a partial match (contains) on the username field.",
              "title": "Username"
            },
            "description": "Optional filter for username. Performs a partial match (contains) on the username field."
          },
          {
            "name": "tax_code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for tax code. Performs a partial match (contains) on the tax code field.",
              "title": "Tax Code"
            },
            "description": "Optional filter for tax code. Performs a partial match (contains) on the tax code field."
          },
          {
            "name": "first_name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for first name. Performs a partial match (contains) on the first name field.",
              "title": "First Name"
            },
            "description": "Optional filter for first name. Performs a partial match (contains) on the first name field."
          },
          {
            "name": "last_name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for last name. Performs a partial match (contains) on the last name field.",
              "title": "Last Name"
            },
            "description": "Optional filter for last name. Performs a partial match (contains) on the last name field."
          },
          {
            "name": "email",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for email. Performs a partial match (contains) on the email field.",
              "format": "email",
              "title": "Email"
            },
            "description": "Optional filter for email. Performs a partial match (contains) on the email field."
          },
          {
            "name": "phone_number",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for phone number. Performs a partial match (contains) on the phone number field.",
              "title": "Phone Number"
            },
            "description": "Optional filter for phone number. Performs a partial match (contains) on the phone number field."
          },
          {
            "name": "api_token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for API token used for authenticating requests.",
              "title": "Api Token"
            },
            "description": "Optional filter for API token used for authenticating requests."
          },
          {
            "name": "is_active",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Indicates whether the account is active. This field uses an exact match (true/false).",
              "title": "Is Active"
            },
            "description": "Indicates whether the account is active. This field uses an exact match (true/false)."
          },
          {
            "name": "customers",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "description": "List of customer IDs. Performs an exact match on the customer ID list.",
              "title": "Customers"
            },
            "description": "List of customer IDs. Performs an exact match on the customer ID list."
          },
          {
            "name": "role",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Role ID representing the user's role. This field uses an exact match for the role.",
              "title": "Role"
            },
            "description": "Role ID representing the user's role. This field uses an exact match for the role."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  },
                  "title": "Response User List Api V1 User  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/create/": {
      "post": {
        "tags": [
          "User API"
        ],
        "summary": "create a user",
        "operationId": "user_create_api_v1_user_create__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/user/{user_id}/update/": {
      "put": {
        "tags": [
          "User API"
        ],
        "summary": "update user",
        "operationId": "user_update_api_v1_user__user_id__update__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the user",
              "title": "User Id"
            },
            "description": "The ID of the user"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "User API"
        ],
        "summary": "update user",
        "operationId": "user_patch_api_v1_user__user_id__update__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the user",
              "title": "User Id"
            },
            "description": "The ID of the user"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPartialForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/{user_id}/": {
      "get": {
        "tags": [
          "User API"
        ],
        "summary": "get user detail by id",
        "operationId": "user_detail_api_v1_user__user_id___get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the user",
              "title": "User Id"
            },
            "description": "The ID of the user"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user/{user_id}/token/": {
      "get": {
        "tags": [
          "User API"
        ],
        "summary": "get user detail token by id",
        "operationId": "user_detail_token_api_v1_user__user_id__token__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the user",
              "title": "User Id"
            },
            "description": "The ID of the user"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDetailToken"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/customer/": {
      "get": {
        "tags": [
          "Customer API"
        ],
        "summary": "Get all customers available",
        "operationId": "customer_list_api_v1_customer__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Part of the name of a customer",
              "title": "Name"
            },
            "description": "Part of the name of a customer"
          },
          {
            "name": "parent",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of the parent of a customer",
              "title": "Parent"
            },
            "description": "The ID of the parent of a customer"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "title": "Response Customer List Api V1 Customer  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/customer/create/": {
      "post": {
        "tags": [
          "Customer API"
        ],
        "summary": "Create a customer",
        "operationId": "customer_create_api_v1_customer_create__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/api/v1/customer/{customer_id}/update/": {
      "put": {
        "tags": [
          "Customer API"
        ],
        "summary": "Update a customer using its ID",
        "operationId": "customer_update_api_v1_customer__customer_id__update__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the customer to update",
              "title": "Customer Id"
            },
            "description": "The ID of the customer to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Customer API"
        ],
        "summary": "Partially update a customer using its ID",
        "operationId": "customer_partial_update_api_v1_customer__customer_id__update__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the customer to update",
              "title": "Customer Id"
            },
            "description": "The ID of the customer to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPartialForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/customer/{customer_id}/": {
      "get": {
        "tags": [
          "Customer API"
        ],
        "summary": "Get a specific customer using its ID",
        "operationId": "customer_api_v1_customer__customer_id___get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the customer to get",
              "title": "Customer Id"
            },
            "description": "The ID of the customer to get"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/credential/api/v1/template/": {
      "get": {
        "tags": [
          "Credential template API"
        ],
        "summary": "Get the list of templates",
        "operationId": "credential_template_list_credential_api_v1_template__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The name of a credential template",
              "title": "Name"
            },
            "description": "The name of a credential template"
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The description of a credential template",
              "title": "Description"
            },
            "description": "The description of a credential template"
          },
          {
            "name": "credential_format",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/CredentialFormatChoices",
              "description": "The format of credential used by a credential template"
            },
            "description": "The format of credential used by a credential template"
          },
          {
            "name": "credential_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The credential type. It represents the 'vct' field of an SD+JWT credential. Instead, It represents the 'doctype' field of an MDOC credential.",
              "title": "Credential Type"
            },
            "description": "The credential type. It represents the 'vct' field of an SD+JWT credential. Instead, It represents the 'doctype' field of an MDOC credential."
          },
          {
            "name": "customer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of the customer associated with a credential template",
              "title": "Customer"
            },
            "description": "The ID of the customer associated with a credential template"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CredentialTemplate"
                  },
                  "title": "Response Credential Template List Credential Api V1 Template  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/credential/api/v1/template/create/": {
      "post": {
        "tags": [
          "Credential template API"
        ],
        "summary": "Create a template",
        "operationId": "credential_template_create_credential_api_v1_template_create__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialTemplateForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialTemplate"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/credential/api/v1/template/{credential_template_id}/": {
      "get": {
        "tags": [
          "Credential template API"
        ],
        "summary": "Get a template using its ID",
        "operationId": "credential_template_credential_api_v1_template__credential_template_id___get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "credential_template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Credential Template Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialTemplate"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/credential/api/v1/verification/template/": {
      "get": {
        "tags": [
          "Verification template API"
        ],
        "summary": "Get the list of verification templates",
        "operationId": "verification_template_list_credential_api_v1_verification_template__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The name of a verification template",
              "title": "Name"
            },
            "description": "The name of a verification template"
          },
          {
            "name": "description",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "The description of a verification template",
              "title": "Description"
            },
            "description": "The description of a verification template"
          },
          {
            "name": "credential_format",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/CredentialFormatChoices",
              "description": "The format of credential used by a verification template"
            },
            "description": "The format of credential used by a verification template"
          },
          {
            "name": "customer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of the customer associated with a verification template",
              "title": "Customer"
            },
            "description": "The ID of the customer associated with a verification template"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VerificationTemplate"
                  },
                  "title": "Response Verification Template List Credential Api V1 Verification Template  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/credential/api/v1/verification/template/create/": {
      "post": {
        "tags": [
          "Verification template API"
        ],
        "summary": "Create a verification template",
        "operationId": "verification_template_create_credential_api_v1_verification_template_create__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationTemplateForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationTemplate"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/credential/api/v1/verification/template/{verification_template_id}/": {
      "get": {
        "tags": [
          "Verification template API"
        ],
        "summary": "Get a specific verification template using its ID",
        "operationId": "verification_template_credential_api_v1_verification_template__verification_template_id___get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "title": "Verification Template Id"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationTemplate"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/issuance/api/v1/service/": {
      "get": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Get the list of issuance services",
        "operationId": "service_list_issuance_api_v1_service__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Part of the name of an issuance service",
              "title": "Name"
            },
            "description": "Part of the name of an issuance service"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ServiceStatusChoices",
              "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
            },
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          {
            "name": "customer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of a customer",
              "title": "Customer"
            },
            "description": "The ID of a customer"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IssuanceService"
                  },
                  "title": "Response Service List Issuance Api V1 Service  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/issuance/api/v1/service/{issuance_service_id}": {
      "get": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Get a specific issuance service using its ID",
        "operationId": "issuance_service_issuance_api_v1_service__issuance_service_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the service to get",
              "title": "Service Id"
            },
            "description": "The ID of the service to get"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuanceService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/issuance/api/v1/service/create/": {
      "post": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Create an issuance service",
        "operationId": "issuance_service_create_issuance_api_v1_service_create__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssuanceServiceForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuanceService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/issuance/api/v1/service/{issuance_service_id}/update/": {
      "put": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Update an issuance service using its ID",
        "operationId": "issuance_service_update_issuance_api_v1_service__issuance_service_id__update__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "issuance_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the issuance service to update",
              "title": "Issuance Service Id"
            },
            "description": "The ID of the issuance service to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssuanceServiceForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuanceService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Partially update an issuance service using its ID",
        "operationId": "issuance_service_partial_update_issuance_api_v1_service__issuance_service_id__update__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "issuance_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the issuance service to update",
              "title": "Issuance Service Id"
            },
            "description": "The ID of the issuance service to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssuanceServicePartialForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IssuanceService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/issuance/api/v1/credential/": {
      "get": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Get the list of credentials",
        "operationId": "credential_list_issuance_api_v1_credential__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/CredentialStatusChoices",
              "description": "\nThe status of the credential\n- REQUESTED =\u003E 1\n- FAILED =\u003E 2\n- ISSUED =\u003E 3\n- REVOKED =\u003E 4\n"
            },
            "description": "\nThe status of the credential\n- REQUESTED =\u003E 1\n- FAILED =\u003E 2\n- ISSUED =\u003E 3\n- REVOKED =\u003E 4\n"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/CredentialFormatChoices",
              "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n"
            },
            "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n"
          },
          {
            "name": "credential_template",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "description": "The list of IDs of the related credential templates",
              "title": "Credential Template"
            },
            "description": "The list of IDs of the related credential templates"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Credential"
                  },
                  "title": "Response Credential List Issuance Api V1 Credential  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/issuance/api/v1/credential/{credential_id}": {
      "get": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Get a specific credential using its ID",
        "operationId": "credential_issuance_api_v1_credential__credential_id__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "credential_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the credential to get",
              "title": "Credential Id"
            },
            "description": "The ID of the credential to get"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Credential"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/issuance/api/v1/{issuance_service_id}/init": {
      "post": {
        "tags": [
          "Issuance API"
        ],
        "summary": "Start the issuance process for an issuance service using its ID",
        "operationId": "issuance_init_issuance_api_v1__issuance_service_id__init_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "issuance_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the issuance service to use",
              "title": "Issuance Service Id"
            },
            "description": "The ID of the issuance service to use"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitIssuanceForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InitIssuanceResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/verification/api/v1/service/": {
      "get": {
        "tags": [
          "Verification API"
        ],
        "summary": "get all verification service with optional filters",
        "operationId": "get_verification_service_verification_api_v1_service__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "description": "Optional filter for the service name. Performs a partial match (contains) on the name field.",
              "title": "Name"
            },
            "description": "Optional filter for the service name. Performs a partial match (contains) on the name field."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ServiceStatusChoices",
              "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
            },
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          {
            "name": "customer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "Customer ID. This field uses an exact match for the customer ID.",
              "title": "Customer"
            },
            "description": "Customer ID. This field uses an exact match for the customer ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VerificationService"
                  },
                  "title": "Response Get Verification Service Verification Api V1 Service  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/verification/api/v1/service/{verification_service_id}/": {
      "get": {
        "tags": [
          "Verification API"
        ],
        "summary": "get verification service detail",
        "operationId": "get_verification_service_detail_verification_api_v1_service__verification_service_id___get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the verification service",
              "title": "Verification Service Id"
            },
            "description": "The ID of the verification service"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/verification/api/v1/service/create/": {
      "post": {
        "tags": [
          "Verification API"
        ],
        "summary": "create a verification service",
        "operationId": "verification_service_create_verification_api_v1_service_create__post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationServiceForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "security": [
          {
            "HTTPBearer": []
          }
        ]
      }
    },
    "/verification/api/v1/service/{verification_service_id}/update/": {
      "put": {
        "tags": [
          "Verification API"
        ],
        "summary": "update a verification service",
        "operationId": "verification_service_update_verification_api_v1_service__verification_service_id__update__put",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the verification service",
              "title": "Verification Service Id"
            },
            "description": "The ID of the verification service"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationServiceForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Verification API"
        ],
        "summary": "partial update of a verification service",
        "operationId": "verification_service_partial_update_verification_api_v1_service__verification_service_id__update__patch",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the verification service",
              "title": "Verification Service Id"
            },
            "description": "The ID of the verification service"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationServicePartialUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationService"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/verification/api/v1/verification/": {
      "get": {
        "tags": [
          "Verification API"
        ],
        "summary": "get verification list with optional filters",
        "operationId": "get_verification_service_list_verification_api_v1_verification__get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/VerificationsStatusChoices",
              "description": "\nThe status of the verification\n- 1 =\u003E REQUESTED\n- 2 =\u003E FAILED\n- 3 -\u003E COMPLETED\n"
            },
            "description": "\nThe status of the verification\n- 1 =\u003E REQUESTED\n- 2 =\u003E FAILED\n- 3 -\u003E COMPLETED\n"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/CredentialFormatChoices",
              "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n"
            },
            "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n"
          },
          {
            "name": "verification_template",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of the verification template associated with this filter. This field is optional and can be used to filter by a specific template.",
              "title": "Verification Template"
            },
            "description": "The ID of the verification template associated with this filter. This field is optional and can be used to filter by a specific template."
          },
          {
            "name": "verification_service",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of the verification service associated with this filter. This field is optional and can be used to filter by a specific service.",
              "title": "Verification Service"
            },
            "description": "The ID of the verification service associated with this filter. This field is optional and can be used to filter by a specific service."
          },
          {
            "name": "customer",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "description": "The ID of the customer associated with this filter. This field is optional and can be used to filter by a specific customer.",
              "title": "Customer"
            },
            "description": "The ID of the customer associated with this filter. This field is optional and can be used to filter by a specific customer."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Verification"
                  },
                  "title": "Response Get Verification Service List Verification Api V1 Verification  Get"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/verification/api/v1/verification/{verification_id}/": {
      "get": {
        "tags": [
          "Verification API"
        ],
        "summary": "get verification detail",
        "operationId": "get_verification_detail_verification_api_v1_verification__verification_id___get",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the verification",
              "title": "Verification Id"
            },
            "description": "The ID of the verification"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Verification"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/verification/api/v1/{verification_service_id}/init": {
      "post": {
        "tags": [
          "Verification API"
        ],
        "summary": "verification init",
        "operationId": "init_verification_verification_api_v1__verification_service_id__init_post",
        "security": [
          {
            "HTTPBearer": []
          }
        ],
        "parameters": [
          {
            "name": "verification_service_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "The ID of the verification service",
              "title": "Verification Service Id"
            },
            "description": "The ID of the verification service"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitVerificationForm"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InitVerificationResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Credential": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the credential"
          },
          "status": {
            "$ref": "#/components/schemas/CredentialStatusChoices",
            "description": "\nThe status of the credential\n- REQUESTED =\u003E 1\n- FAILED =\u003E 2\n- ISSUED =\u003E 3\n- REVOKED =\u003E 4\n"
          },
          "status_display": {
            "$ref": "#/components/schemas/CredentialStatusDisplayChoices",
            "description": "The human readable version of the credential status"
          },
          "format": {
            "$ref": "#/components/schemas/CredentialFormatChoices",
            "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n"
          },
          "format_display": {
            "$ref": "#/components/schemas/CredentialFormatChoicesDisplay",
            "description": "The human readable version of the credential format"
          },
          "customer": {
            "type": "integer",
            "title": "Customer",
            "description": "The ID of the customer linked to this issuance service",
            "example": 3
          },
          "issuance_service": {
            "type": "integer",
            "title": "Issuance Service",
            "description": "The ID of the issuance service",
            "example": 3
          },
          "credential_template": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Credential Template",
            "description": "The list of IDs of the related credential templates",
            "example": [1, 2]
          }
        },
        "type": "object",
        "required": [
          "id",
          "status",
          "status_display",
          "format",
          "format_display",
          "customer",
          "issuance_service",
          "credential_template"
        ],
        "title": "Credential"
      },
      "CredentialFormatApiChoices": {
        "type": "string",
        "enum": [
          "sd_jwt",
          "mso_mdoc"
        ],
        "title": "CredentialFormatApiChoices"
      },
      "CredentialFormatChoices": {
        "type": "integer",
        "enum": [1, 2],
        "title": "CredentialFormatChoices"
      },
      "CredentialFormatChoicesDisplay": {
        "type": "string",
        "enum": [
          "SD+JWT",
          "MDOC"
        ],
        "title": "CredentialFormatChoicesDisplay"
      },
      "CredentialRequestInit": {
        "properties": {
          "template_id": {
            "type": "integer",
            "title": "Template Id",
            "description": "Indicates the template ID",
            "example": 16
          },
          "claims": {
            "additionalProperties": true,
            "type": "object",
            "title": "Claims",
            "description": "Claims to be included in the credential",
            "example": {
              "family_name": "Iovine",
              "given_name": "Nicola"
            }
          }
        },
        "type": "object",
        "required": [
          "template_id",
          "claims"
        ],
        "title": "CredentialRequestInit"
      },
      "CredentialStatusChoices": {
        "type": "integer",
        "enum": [1, 2, 3, 4],
        "title": "CredentialStatusChoices"
      },
      "CredentialStatusDisplayChoices": {
        "type": "string",
        "enum": [
          "Requested",
          "Failed",
          "Issued",
          "Revoked"
        ],
        "title": "CredentialStatusDisplayChoices"
      },
      "CredentialTemplate": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the credential template",
            "example": 123
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the credential template",
            "example": "Personal Identifier Data"
          },
          "credential_format": {
            "$ref": "#/components/schemas/CredentialFormatChoices",
            "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n"
          },
          "credential_format_display": {
            "$ref": "#/components/schemas/CredentialFormatChoicesDisplay",
            "description": "The human readable version of the credential format used by this credential template"
          },
          "credential_type": {
            "type": "string",
            "title": "Credential Type",
            "description": "The credential type. It represents the 'vct' field of an SD+JWT credential. Instead, It represents the 'doctype' field of an MDOC credential.",
            "example": "eu.europa.ec.eudi.pid.1"
          },
          "schema": {
            "additionalProperties": {
              "$ref": "#/components/schemas/IssuanceProperty-Output"
            },
            "type": "object",
            "title": "Schema",
            "description": "The schema of the credential template",
            "example": {
              "anagraphical_data": {
                "display": "Anagraphical data",
                "format": "dict",
                "properties": {
                  "given_name": {
                    "display": "Given name",
                    "format": "str",
                    "required": true
                  },
                  "family_name": {
                    "display": "Family name",
                    "format": "str",
                    "required": true
                  }
                },
                "required": true
              }
            }
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "credential_format",
          "credential_format_display",
          "credential_type"
        ],
        "title": "CredentialTemplate"
      },
      "CredentialTemplateForm": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "title": "Name",
            "description": "The name of the credential template",
            "example": "Personal Identifier Data"
          },
          "credential_format": {
            "$ref": "#/components/schemas/CredentialFormatApiChoices",
            "description": "\nThe format of credential used by this credential template\n- sd_jwt =\u003E SD+JWT\n- mso_mdoc =\u003E MDOC\n"
          },
          "credential_type": {
            "type": "string",
            "maxLength": 256,
            "title": "Credential Type",
            "description": "The credential type. It represents the 'vct' field of an SD+JWT credential. Instead, It represents the 'doctype' field of an MDOC credential.",
            "example": "eu.europa.ec.eudi.pid.1"
          },
          "schema": {
            "additionalProperties": {
              "$ref": "#/components/schemas/IssuanceProperty-Input"
            },
            "type": "object",
            "title": "Schema",
            "description": "The schema of the credential template",
            "example": {
              "anagraphical_data": {
                "display": "Anagraphical data",
                "format": "dict",
                "properties": {
                  "given_name": {
                    "display": "Given name",
                    "format": "str",
                    "required": true
                  },
                  "family_name": {
                    "display": "Family name",
                    "format": "str",
                    "required": true
                  }
                },
                "required": true
              }
            }
          }
        },
        "type": "object",
        "required": [
          "name",
          "credential_format",
          "credential_type",
          "schema"
        ],
        "title": "CredentialTemplateForm"
      },
      "Customer": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the customer"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the customer",
            "example": "example_customer"
          },
          "status": {
            "$ref": "#/components/schemas/CustomerStatusChoices",
            "description": "\nThe status of the customer\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          "status_display": {
            "$ref": "#/components/schemas/CustomerStatusDisplayChoices",
            "description": "The human readable version of the customer status"
          },
          "parent": {
            "$ref": "#/components/schemas/Customer",
            "description": "The parent of the customer",
            "example": {
              "id": 1,
              "name": "root_customer",
              "status": 1,
              "status_display": "Enabled"
            }
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "status_display"
        ],
        "title": "Customer"
      },
      "CustomerForm": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "title": "Name",
            "description": "The name of the customer",
            "example": "example_customer"
          },
          "status": {
            "$ref": "#/components/schemas/CustomerStatusChoices",
            "description": "\nThe status of the customer\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          "parent": {
            "type": "integer",
            "title": "Parent",
            "description": "The ID of the parent of the customer",
            "example": 3
          }
        },
        "type": "object",
        "required": [
          "name",
          "status",
          "parent"
        ],
        "title": "CustomerForm"
      },
      "CustomerPartialForm": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "title": "Name",
            "description": "The name of the customer",
            "example": "example_customer"
          },
          "status": {
            "$ref": "#/components/schemas/CustomerStatusChoices",
            "description": "\nThe status of the customer\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          "parent": {
            "type": "integer",
            "title": "Parent",
            "description": "The ID of the parent of the customer",
            "example": 3
          }
        },
        "type": "object",
        "title": "CustomerPartialForm"
      },
      "CustomerStatusChoices": {
        "type": "integer",
        "enum": [1, 2],
        "title": "CustomerStatusChoices"
      },
      "CustomerStatusDisplayChoices": {
        "type": "string",
        "enum": [
          "Enabled",
          "Disabled"
        ],
        "title": "CustomerStatusDisplayChoices"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "InitIssuanceForm": {
        "properties": {
          "tx_code": {
            "type": "boolean",
            "title": "Tx Code",
            "description": "Indicates if the issuance process has the txcode",
            "example": true
          },
          "callback_url": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Callback Url",
            "description": "The callback URL to notify when the process is complete"
          },
          "state": {
            "type": "string",
            "maxLength": 12,
            "title": "State",
            "description": "The state of the process",
            "example": "1234567890"
          },
          "credentials": {
            "items": {
              "$ref": "#/components/schemas/CredentialRequestInit"
            },
            "type": "array",
            "title": "Credentials",
            "description": "The credentials of the request",
            "example": [
              {
                "claims": {
                  "anagraphical_data": {
                    "family_name": "Iovine",
                    "given_name": "Nicola"
                  }
                },
                "template_id": 16
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "credentials"
        ],
        "title": "InitIssuanceForm"
      },
      "InitIssuanceResponse": {
        "properties": {
          "requested_credentials": {
            "items": {
              "$ref": "#/components/schemas/Credential"
            },
            "type": "array",
            "title": "Requested Credentials",
            "description": "The list of the credential requested"
          },
          "code": {
            "type": "string",
            "title": "Code",
            "description": "The pre-auth-code",
            "example": "66aaa36f-51a1-4a2a-ba30-a0aaa9a7aa9a"
          },
          "uri": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Uri",
            "description": "The issuance uri"
          }
        },
        "type": "object",
        "required": [
          "requested_credentials",
          "code",
          "uri"
        ],
        "title": "InitIssuanceResponse"
      },
      "InitVerificationForm": {
        "properties": {
          "callback_url": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Callback Url",
            "description": "The URL where the verification result will be sent. This is typically used to notify the requester once the verification process is completed.",
            "example": "https://example.com/callback"
          },
          "state": {
            "type": "string",
            "maxLength": 12,
            "title": "State",
            "description": "A state identifier that can be used to track the progress or status of the verification request. This value is optional.",
            "example": "state123"
          },
          "verifications": {
            "items": {
              "$ref": "#/components/schemas/VerificationRequestInit"
            },
            "type": "array",
            "title": "Verifications",
            "description": "A list of verification requests. Each request defines a template and associated transaction data for the verification process.",
            "example": [
              {
                "template_id": 101,
                "transaction_data": [
                  {
                    "credential_ids": [
                      "cred_123",
                      "cred_456"
                    ],
                    "data": {
                      "amount": 100,
                      "currency": "USD"
                    },
                    "transaction_data_hashes_alg": [
                      "SHA256"
                    ],
                    "type": "Payment"
                  }
                ]
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "verifications"
        ],
        "title": "InitVerificationForm"
      },
      "InitVerificationResponse": {
        "properties": {
          "request_verification": {
            "$ref": "#/components/schemas/Verification",
            "description": "The verification object containing the details of the verification request, including its status, type, and associated customer."
          },
          "uri": {
            "type": "string",
            "maxLength": 2083,
            "minLength": 1,
            "format": "uri",
            "title": "Uri",
            "description": "The URI that points to the verification process or its status. This is used to redirect the user or system to the appropriate verification page.",
            "example": "https://example.com/verification/12345"
          },
          "code": {
            "type": "string",
            "title": "Code",
            "description": "A unique verification code associated with the verification process.",
            "example": "ABCD1234"
          }
        },
        "type": "object",
        "required": [
          "request_verification",
          "uri",
          "code"
        ],
        "title": "InitVerificationResponse"
      },
      "IssuanceProperty-Input": {
        "properties": {
          "display": {
            "type": "string",
            "title": "Display",
            "description": "The display name of the property",
            "example": "A simple description"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "The description of the property",
            "example": "A simple description"
          },
          "format": {
            "$ref": "#/components/schemas/PropertyFormat",
            "description": "\nThe format of the property\n- int =\u003E int type\n- float =\u003E float type\n- str =\u003E str type\n- bool =\u003E bool type\n- date =\u003E date type\n- datetime =\u003E datetime type\n- list =\u003E list type\n- dict =\u003E dict type\n- namespace =\u003E namespace type\n",
            "example": "A simple description"
          },
          "required": {
            "type": "boolean",
            "title": "Required",
            "description": "This attribute indicates if this property is required",
            "default": false,
            "example": "A simple description"
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/IssuanceProperty-Input"
            },
            "type": "object",
            "title": "Properties",
            "description": "Sub-properties of the property",
            "example": {
              "family_name": {
                "display": "Family name",
                "format": "str",
                "required": true
              },
              "given_name": {
                "display": "Given name",
                "format": "str",
                "required": true
              }
            }
          }
        },
        "type": "object",
        "required": [
          "format"
        ],
        "title": "IssuanceProperty"
      },
      "IssuanceProperty-Output": {
        "properties": {
          "display": {
            "type": "string",
            "title": "Display",
            "description": "The display name of the property",
            "example": "A simple description"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "The description of the property",
            "example": "A simple description"
          },
          "format": {
            "$ref": "#/components/schemas/PropertyFormat",
            "description": "\nThe format of the property\n- int =\u003E int type\n- float =\u003E float type\n- str =\u003E str type\n- bool =\u003E bool type\n- date =\u003E date type\n- datetime =\u003E datetime type\n- list =\u003E list type\n- dict =\u003E dict type\n- namespace =\u003E namespace type\n",
            "example": "A simple description"
          },
          "required": {
            "type": "boolean",
            "title": "Required",
            "description": "This attribute indicates if this property is required",
            "default": false,
            "example": "A simple description"
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/IssuanceProperty-Output"
            },
            "type": "object",
            "title": "Properties",
            "description": "Sub-properties of the property",
            "example": {
              "family_name": {
                "display": "Family name",
                "format": "str",
                "required": true
              },
              "given_name": {
                "display": "Given name",
                "format": "str",
                "required": true
              }
            }
          }
        },
        "type": "object",
        "required": [
          "format"
        ],
        "title": "IssuanceProperty"
      },
      "IssuanceService": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the issuance service"
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the issuance service",
            "example": "example_issuance_service"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatusChoices",
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          "status_display": {
            "$ref": "#/components/schemas/ServiceStatusDisplayChoices",
            "description": "The human readable version of the issuance service status"
          },
          "use_x5c": {
            "type": "boolean",
            "title": "Use X5C",
            "description": "The value of use x5c attribute"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "status_display",
          "use_x5c"
        ],
        "title": "IssuanceService"
      },
      "IssuanceServiceForm": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the issuance service",
            "example": "example_issuance_service"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatusChoices",
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n",
            "default": 2
          },
          "customer": {
            "type": "integer",
            "title": "Customer",
            "description": "The ID of the customer linked to this issuance service",
            "example": 3
          },
          "credential_templates": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Credential Templates",
            "description": "IDs of the credential templates linked to this issuance service",
            "example": [1, 2]
          },
          "users": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Users",
            "description": "The IDs of users linked to this issuance service",
            "example": [1, 2]
          },
          "use_x5c": {
            "type": "boolean",
            "title": "Use X5C",
            "description": "The value of use x5c attribute",
            "default": true
          }
        },
        "type": "object",
        "required": [
          "name",
          "customer",
          "credential_templates",
          "users"
        ],
        "title": "IssuanceServiceForm"
      },
      "IssuanceServicePartialForm": {
        "properties": {
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the issuance service",
            "example": "example_issuance_service"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatusChoices",
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          "customer": {
            "type": "integer",
            "title": "Customer",
            "description": "The ID of the customer linked to this issuance service",
            "example": 3
          },
          "credential_templates": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Credential Templates",
            "description": "IDs of the credential templates linked to this issuance service",
            "example": [1, 2]
          },
          "users": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Users",
            "description": "The IDs of users linked to this issuance service",
            "example": [1, 2]
          },
          "use_x5c": {
            "type": "boolean",
            "title": "Use X5C",
            "description": "The value of use x5c attribute"
          }
        },
        "type": "object",
        "title": "IssuanceServicePartialForm"
      },
      "LimitDisclosureChoices": {
        "type": "string",
        "enum": [
          "required",
          "preferred"
        ],
        "title": "LimitDisclosureChoices"
      },
      "PropertyFormat": {
        "type": "string",
        "enum": [
          "int",
          "float",
          "str",
          "bool",
          "date",
          "datetime",
          "list",
          "dict",
          "namespace"
        ],
        "title": "PropertyFormat"
      },
      "ServiceStatusChoices": {
        "type": "integer",
        "enum": [1, 2],
        "title": "ServiceStatusChoices"
      },
      "ServiceStatusDisplayChoices": {
        "type": "string",
        "enum": [
          "Enabled",
          "Disabled"
        ],
        "title": "ServiceStatusDisplayChoices"
      },
      "TransactionData": {
        "properties": {
          "type": {
            "type": "string",
            "title": "Type",
            "description": "The type of the transaction. This field represents the category or classification of the transaction.",
            "example": "Payment"
          },
          "credential_ids": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Credential Ids",
            "description": "A list of credential IDs associated with the transaction. These IDs represent the credentials used in this transaction.",
            "example": [
              "cred_123",
              "cred_456"
            ]
          },
          "transaction_data_hashes_alg": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Transaction Data Hashes Alg",
            "description": "A list of algorithms used to hash the transaction data. This can be used to verify the integrity of the data.",
            "example": [
              "SHA256",
              "SHA512"
            ]
          },
          "data": {
            "additionalProperties": true,
            "type": "object",
            "title": "Data",
            "description": "A dictionary containing additional transaction data. This field stores key-value pairs of information related to the transaction.",
            "example": {
              "amount": 100,
              "currency": "USD"
            }
          }
        },
        "type": "object",
        "required": [
          "type",
          "credential_ids",
          "data"
        ],
        "title": "TransactionData"
      },
      "User": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the user",
            "example": "3 'always positive number'"
          },
          "username": {
            "type": "string",
            "title": "Username",
            "description": "The username of the user",
            "example": "Jdoe9"
          },
          "first_name": {
            "type": "string",
            "title": "First Name",
            "description": "The first name of the user",
            "example": "Jane"
          },
          "last_name": {
            "type": "string",
            "title": "Last Name",
            "description": "The last name of the user",
            "example": "Doe"
          },
          "tax_code": {
            "type": "string",
            "title": "Tax Code",
            "description": "The tax_code of the user",
            "example": "JNEDOE34..."
          },
          "email": {
            "type": "string",
            "format": "email",
            "title": "Email",
            "description": "The email of the user",
            "example": "j.doe@namirial.com"
          },
          "phone_number": {
            "type": "string",
            "title": "Phone Number",
            "description": "The phone number of the user",
            "example": "XXX XXXXXXX"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "description": "Indicate user account status",
            "example": "True"
          },
          "role": {
            "type": "string",
            "title": "Role",
            "description": "The role of the user",
            "example": "Service API"
          }
        },
        "type": "object",
        "required": [
          "id",
          "is_active",
          "role"
        ],
        "title": "User"
      },
      "UserDetailToken": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the user",
            "example": "3 'always positive number'"
          },
          "api_token": {
            "type": "string",
            "title": "Api Token",
            "description": "API token used for authenticating requests.",
            "example": "secretapitoken"
          }
        },
        "type": "object",
        "required": [
          "id",
          "api_token"
        ],
        "title": "UserDetailToken"
      },
      "UserForm": {
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 150,
            "title": "First Name",
            "description": "The first name of the user",
            "example": "Jane"
          },
          "last_name": {
            "type": "string",
            "maxLength": 150,
            "title": "Last Name",
            "description": "The last name of the user",
            "example": "Doe"
          },
          "tax_code": {
            "type": "string",
            "maxLength": 256,
            "title": "Tax Code",
            "description": "The tax_code of the user",
            "example": "JNEDOE34..."
          },
          "username": {
            "type": "string",
            "maxLength": 150,
            "title": "Username",
            "description": "The username of the user",
            "example": "Jdoe9"
          },
          "password": {
            "type": "string",
            "title": "Password",
            "description": "User password used for authentication.",
            "example": "agFSBN451dg54s1g"
          },
          "email": {
            "type": "string",
            "maxLength": 254,
            "format": "email",
            "title": "Email",
            "description": "The email of the user",
            "example": "j.doe@namirial.com"
          },
          "phone_number": {
            "type": "string",
            "maxLength": 32,
            "title": "Phone Number",
            "description": "The phone number of the user",
            "example": "XXX XXXXXXX"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "description": "Indicates whether the user account is currently active.",
            "default": true,
            "example": true
          },
          "role": {
            "type": "integer",
            "title": "Role",
            "description": "The role of the user",
            "example": 1
          },
          "customers": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Customers",
            "description": "List of customer IDs to associate with the current entity. Each ID should correspond to a valid customer record.",
            "example": [101, 202, 303]
          },
          "api_token": {
            "type": "string",
            "maxLength": 128,
            "title": "Api Token",
            "description": "API token used to authenticate requests. Must be a securely generated string with a maximum length of 128 characters.",
            "example": "secretapitoken"
          },
          "auto_generate_api_token": {
            "type": "boolean",
            "title": "Auto Generate Api Token",
            "description": "If set to true, an API token will be automatically generated.",
            "default": false,
            "example": true
          }
        },
        "type": "object",
        "required": [
          "username",
          "role"
        ],
        "title": "UserForm"
      },
      "UserPartialForm": {
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 150,
            "title": "First Name",
            "description": "The first name of the user",
            "example": "Jane"
          },
          "last_name": {
            "type": "string",
            "maxLength": 150,
            "title": "Last Name",
            "description": "The last name of the user",
            "example": "Doe"
          },
          "tax_code": {
            "type": "string",
            "maxLength": 256,
            "title": "Tax Code",
            "description": "The tax code of theuser",
            "example": "JNEDOE34..."
          },
          "username": {
            "type": "string",
            "maxLength": 150,
            "title": "Username",
            "description": "The username of the user",
            "example": "Jdoe9"
          },
          "password": {
            "type": "string",
            "title": "Password",
            "description": "User password used for authentication.",
            "example": "agFSBN451dg54s1g"
          },
          "email": {
            "type": "string",
            "maxLength": 254,
            "format": "email",
            "title": "Email",
            "description": "The email of the user",
            "example": "j.doe@namirial.com"
          },
          "phone_number": {
            "type": "string",
            "maxLength": 32,
            "title": "Phone Number",
            "description": "The phone number of the user",
            "example": "XXX XXXXXXX"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "description": "Indicates whether the user account is currently active.",
            "example": true
          },
          "role": {
            "type": "integer",
            "title": "Role",
            "description": "The role of the user",
            "example": 1
          },
          "customers": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Customers",
            "description": "List of customer IDs to associate with the current entity. Each ID should correspond to a valid customer record.",
            "example": [101, 202, 303]
          },
          "api_token": {
            "type": "string",
            "maxLength": 128,
            "title": "Api Token",
            "description": "API token used to authenticate requests. Must be a securely generated string with a maximum length of 128 characters.",
            "example": "secretapitoken"
          },
          "auto_generate_api_token": {
            "type": "boolean",
            "title": "Auto Generate Api Token",
            "description": "If set to true, an API token will be automatically generated.",
            "default": false,
            "example": true
          }
        },
        "type": "object",
        "title": "UserPartialForm"
      },
      "VPTokenResponseChoices": {
        "type": "string",
        "enum": [
          "direct_post",
          "direct_post.jwt"
        ],
        "title": "VPTokenResponseChoices"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      },
      "Verification": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID for the verification.",
            "example": 123
          },
          "status": {
            "type": "integer",
            "title": "Status",
            "description": "\nThe status of the verification\n- 1 =\u003E REQUESTED\n- 2 =\u003E FAILED\n- 3 -\u003E COMPLETED\n",
            "example": 2
          },
          "status_display": {
            "type": "string",
            "title": "Status Display",
            "description": "A human-readable version of the verification status. This is a descriptive text corresponding to the status field.",
            "example": "Completed"
          },
          "format": {
            "$ref": "#/components/schemas/CredentialFormatChoices",
            "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n",
            "example": 1
          },
          "format_display": {
            "type": "string",
            "title": "Format Display",
            "description": "The human readable version of the verification format",
            "example": "SD+JWT"
          },
          "verification_template": {
            "$ref": "#/components/schemas/VerificationTemplate",
            "description": "The verification template associated with this verification.",
            "example": {
              "credential_format": 1,
              "credential_format_display": "SD+JWT",
              "id": 101,
              "name": "Personal Identifier Data",
              "schema": {
                "display": "Anagraphical data",
                "format": "dict",
                "optional": false,
                "properties": {
                  "given_name": {
                    "display": "Given name",
                    "format": "str",
                    "optional": false,
                    "required": true
                  },
                  "family_name": {
                    "display": "Family name",
                    "format": "str",
                    "optional": false,
                    "required": true
                  },
                  "birth_date": {
                    "display": "Date of Birth",
                    "format": "date",
                    "optional": true,
                    "required": false
                  }
                },
                "required": true
              }
            }
          },
          "verification_service": {
            "$ref": "#/components/schemas/VerificationService",
            "description": "The verification service used for this verification process. This field contains the service details like name, status, etc.",
            "example": "Identity Verification Service"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer",
            "description": "The customer associated with this verification. This field contains the customer details like name, ID, and other related information.",
            "example": "Customer one"
          }
        },
        "type": "object",
        "required": [
          "id",
          "status",
          "status_display",
          "format",
          "format_display",
          "verification_template",
          "verification_service",
          "customer"
        ],
        "title": "Verification"
      },
      "VerificationProperty-Input": {
        "properties": {
          "display": {
            "type": "string",
            "title": "Display",
            "description": "The display name of the property",
            "example": "A simple description"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "The description of the property",
            "example": "A simple description"
          },
          "format": {
            "$ref": "#/components/schemas/PropertyFormat",
            "description": "\nThe format of the property\n- int =\u003E int type\n- float =\u003E float type\n- str =\u003E str type\n- bool =\u003E bool type\n- date =\u003E date type\n- datetime =\u003E datetime type\n- list =\u003E list type\n- dict =\u003E dict type\n- namespace =\u003E namespace type\n",
            "example": "A simple description"
          },
          "required": {
            "type": "boolean",
            "title": "Required",
            "description": "This attribute indicates if this property is required",
            "default": false,
            "example": "A simple description"
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/IssuanceProperty-Input"
            },
            "type": "object",
            "title": "Properties",
            "description": "Sub-properties of the property",
            "example": {
              "family_name": {
                "display": "Family name",
                "format": "str",
                "required": true
              },
              "given_name": {
                "display": "Given name",
                "format": "str",
                "required": true
              }
            }
          },
          "optional": {
            "type": "boolean",
            "title": "Optional",
            "description": "This attribute indicates if this property is optional",
            "example": "A simple description"
          }
        },
        "type": "object",
        "required": [
          "format",
          "optional"
        ],
        "title": "VerificationProperty"
      },
      "VerificationProperty-Output": {
        "properties": {
          "display": {
            "type": "string",
            "title": "Display",
            "description": "The display name of the property",
            "example": "A simple description"
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "The description of the property",
            "example": "A simple description"
          },
          "format": {
            "$ref": "#/components/schemas/PropertyFormat",
            "description": "\nThe format of the property\n- int =\u003E int type\n- float =\u003E float type\n- str =\u003E str type\n- bool =\u003E bool type\n- date =\u003E date type\n- datetime =\u003E datetime type\n- list =\u003E list type\n- dict =\u003E dict type\n- namespace =\u003E namespace type\n",
            "example": "A simple description"
          },
          "required": {
            "type": "boolean",
            "title": "Required",
            "description": "This attribute indicates if this property is required",
            "default": false,
            "example": "A simple description"
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/IssuanceProperty-Output"
            },
            "type": "object",
            "title": "Properties",
            "description": "Sub-properties of the property",
            "example": {
              "family_name": {
                "display": "Family name",
                "format": "str",
                "required": true
              },
              "given_name": {
                "display": "Given name",
                "format": "str",
                "required": true
              }
            }
          },
          "optional": {
            "type": "boolean",
            "title": "Optional",
            "description": "This attribute indicates if this property is optional",
            "example": "A simple description"
          }
        },
        "type": "object",
        "required": [
          "format",
          "optional"
        ],
        "title": "VerificationProperty"
      },
      "VerificationRequestInit": {
        "properties": {
          "template_id": {
            "type": "integer",
            "title": "Template Id",
            "description": "The ID of the verification template to be used for the verification request.",
            "example": 101
          },
          "transaction_data": {
            "$ref": "#/components/schemas/TransactionData",
            "description": "The transaction data associated with the verification request. This contains details about the transaction, such as credential IDs, hashing algorithms, and other related data.",
            "example": {
              "credential_ids": [
                "cred_123",
                "cred_456"
              ],
              "data": {
                "amount": 100,
                "currency": "USD"
              },
              "transaction_data_hashes_alg": [
                "SHA256"
              ],
              "type": "Payment"
            }
          }
        },
        "type": "object",
        "required": [
          "template_id"
        ],
        "title": "VerificationRequestInit"
      },
      "VerificationService": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "ID for the verification service.",
            "example": 123
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Name of the verification service.",
            "example": "Email Verification Service"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatusChoices",
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n",
            "example": 1
          },
          "status_display": {
            "$ref": "#/components/schemas/ServiceStatusDisplayChoices",
            "description": "A human-readable representation of the status of the verification service.",
            "example": "Enabled"
          },
          "response_mode": {
            "$ref": "#/components/schemas/VPTokenResponseChoices",
            "description": "The response mode"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "status_display",
          "response_mode"
        ],
        "title": "VerificationService"
      },
      "VerificationServiceForm": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "title": "Name",
            "description": "The name of the verification service.",
            "example": "Email Verification Service"
          },
          "status": {
            "$ref": "#/components/schemas/ServiceStatusChoices",
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n",
            "default": 2
          },
          "verification_templates": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Verification Templates",
            "description": "A list of verification template IDs to associate with this service. Each ID represents a different verification template.",
            "example": [101, 102, 103]
          },
          "customer": {
            "type": "integer",
            "title": "Customer",
            "description": "The ID of the customer associated with the verification service. This field represents a unique customer.",
            "example": 123
          },
          "users": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Users",
            "description": "A list of user IDs to associate with this service. These users may have specific roles or permissions for using the verification service.",
            "example": [456, 789]
          },
          "response_mode": {
            "$ref": "#/components/schemas/VPTokenResponseChoices",
            "description": "The response mode",
            "default": "direct_post.jwt"
          }
        },
        "type": "object",
        "required": [
          "name",
          "verification_templates",
          "customer"
        ],
        "title": "VerificationServiceForm"
      },
      "VerificationServicePartialUpdate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "title": "Name",
            "description": "The name of the verification service. This field is optional and can be used to update the service name.",
            "example": "Email Verification Service"
          },
          "status": {
            "type": "integer",
            "title": "Status",
            "description": "\nThe status of the issuance service\n- 1 =\u003E Enabled\n- 2 =\u003E Disabled\n"
          },
          "verification_templates": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Verification Templates",
            "description": "A list of verification template IDs associated with this service. This field is optional and can be used to update the list of templates.",
            "example": [101, 102, 103]
          },
          "customer": {
            "type": "integer",
            "title": "Customer",
            "description": "The ID of the customer associated with the verification service. This field is optional and can be used to update the customer ID.",
            "example": 123
          },
          "users": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Users",
            "description": "A list of user IDs associated with this service. This field is optional and can be used to update the list of users who have access to the service.",
            "example": [456, 789]
          },
          "response_mode": {
            "$ref": "#/components/schemas/VPTokenResponseChoices",
            "description": "The response mode"
          }
        },
        "type": "object",
        "title": "VerificationServicePartialUpdate"
      },
      "VerificationTemplate": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "The ID of the verification template",
            "example": 123
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "The name of the verification template",
            "example": "Personal Identifier Data"
          },
          "credential_format": {
            "$ref": "#/components/schemas/CredentialFormatChoices",
            "description": "\nThe format of credential used by this credential template\n- 1 =\u003E SD+JWT\n- 2 =\u003E MDOC\n",
            "example": 1
          },
          "credential_format_display": {
            "$ref": "#/components/schemas/CredentialFormatChoicesDisplay",
            "description": "The human readable version of the credential format used by this verification template",
            "example": "SD+JWT"
          },
          "credential_type": {
            "type": "string",
            "title": "Credential Type",
            "description": "The credential type. It represents the 'vct' field of an SD+JWT credential. Instead, It represents the 'doctype' field of an MDOC credential.",
            "example": "eu.europa.ec.eudi.pid.1"
          },
          "limit_disclosure": {
            "$ref": "#/components/schemas/LimitDisclosureChoices",
            "description": "The limit disclosure used by this verification template"
          },
          "schema": {
            "additionalProperties": {
              "$ref": "#/components/schemas/VerificationProperty-Output"
            },
            "type": "object",
            "title": "Schema",
            "description": "The schema of the verification template",
            "example": {
              "display": "Anagraphical data",
              "format": "dict",
              "optional": false,
              "properties": {
                "given_name": {
                  "display": "Given name",
                  "format": "str",
                  "optional": false,
                  "required": true
                },
                "family_name": {
                  "display": "Family name",
                  "format": "str",
                  "optional": false,
                  "required": true
                }
              },
              "required": true
            }
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "credential_format",
          "credential_format_display",
          "credential_type",
          "limit_disclosure"
        ],
        "title": "VerificationTemplate"
      },
      "VerificationTemplateForm": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 256,
            "title": "Name",
            "description": "The name of the verification template",
            "example": "Verification of Personal Identifier Data"
          },
          "credential_template": {
            "type": "integer",
            "title": "Credential Template",
            "description": "The related credential template",
            "example": 1
          },
          "limit_disclosure": {
            "$ref": "#/components/schemas/LimitDisclosureChoices",
            "description": "The limit disclosure used by this verification template"
          },
          "schema": {
            "additionalProperties": {
              "$ref": "#/components/schemas/VerificationProperty-Input"
            },
            "type": "object",
            "title": "Schema",
            "description": "The schema of the verification template",
            "example": {
              "anagraphical_data": {
                "display": "Anagraphical data",
                "format": "dict",
                "optional": false,
                "properties": {
                  "given_name": {
                    "display": "Given name",
                    "format": "str",
                    "optional": false,
                    "required": true
                  },
                  "family_name": {
                    "display": "Family name",
                    "format": "str",
                    "optional": false,
                    "required": true
                  }
                },
                "required": true
              }
            }
          }
        },
        "type": "object",
        "required": [
          "name",
          "credential_template",
          "limit_disclosure",
          "schema"
        ],
        "title": "VerificationTemplateForm"
      },
      "VerificationsStatusChoices": {
        "type": "integer",
        "enum": [1, 2, 3],
        "title": "VerificationsStatusChoices"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}