{
  "openapi": "3.0.0",
  "info": {
    "x-audience": "external-public",
    "x-api-id": "aa7033be-3994-4300-bc1d-e1fedf88cf3c",
    "title": "My EUIPO mailbox",
    "x-ibm-name": "my-euipo-mailbox",
    "x-pathalias": "my-euipo-mailbox",
    "version": "1.0.0",
    "description": "Access your User Area Communication Inbox, namely, download documents by and to the Office sent by electronic means. Access your configured alerts in the User\nArea to customize notifications according to your users' needs.\n",
    "contact": {
      "name": "API Platform Team",
      "url": "https://dev.euipo.europa.eu",
      "email": "apiplatform@euipo.europa.eu"
    },
    "termsOfService": "https://euipo.europa.eu/tunnel-web/secure/webdav/guest/document_library/contentPdfs/law_and_practice/decisions_president/EX-22-05_en_annex_I_version_2_en.pdf",
    "x-ip-domain": [
      "Trademark",
      "Industrial Design"
    ],
    "x-service-type": [
      "Search",
      "Communication"
    ],
    "x-content-type": [
      "Office Action data"
    ],
    "x-product-page-url": "https://dev.euipo.europa.eu/product/my_euipo_inbox_100",
    "x-ibm-summary": ""
  },
  "servers": [
    {
      "url": "https://api.euipo.europa.eu/my-euipo-mailbox"
    }
  ],
  "x-ibm-configuration": {
    "testable": true,
    "enforced": true,
    "cors": {
      "enabled": true
    },
    "phase": "realized",
    "type": "rest",
    "oauth-servers": {
      "Oauth2AuthorizationCode": {
        "authorizationCode": {
          "tokenUrls": [
            "https://euipo.europa.eu/cas-server-webapp/oidc/accessToken"
          ],
          "authorizationUrls": [
            "https://euipo.europa.eu/cas-server-webapp/oidc/authorize"
          ],
          "refreshUrls": [
            "https://euipo.europa.eu/cas-server-webapp/oidc/accessToken"
          ]
        }
      }
    }
  },
  "tags": [
    {
      "name": "Message",
      "description": "A set of functionalities that allow you to access your user area's communication inbox, where you can download \ndecisions, notifications and other documents received from the Office, as well as review your communications sent \nto the Office.\n"
    },
    {
      "name": "Alert",
      "description": "A set of functionalities for managing alerts in the User Area. List triggered alerts and archive or delete those \nthat are no longer relevant, ensuring efficient alert management and up-to-date notifications.\n"
    }
  ],
  "paths": {
    "/messages": {
      "get": {
        "operationId": "searchMessages",
        "summary": "Search for messages",
        "description": "Search for messages that match the criteria below. Results are returned in pages (check parameters page and size for more details).",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Language"
          },
          {
            "in": "query",
            "name": "mailboxIdentifier",
            "example": "inbox",
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/MailboxIdentifier"
                }
              ],
              "default": "inbox"
            }
          },
          {
            "in": "query",
            "name": "entityKind",
            "description": "Type of the proceeding to which the message refers\n",
            "example": "EU_TRADEMARK,EU_DESIGN",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/EntityKind"
              }
            }
          },
          {
            "in": "query",
            "name": "entityIdentifier",
            "description": "Identifier of the proceeding to which the message refers\n",
            "example": "00125401",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/EntityIdentifier"
            }
          },
          {
            "in": "query",
            "name": "personalReference",
            "example": "Reference001",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PersonalReference"
            }
          },
          {
            "in": "query",
            "name": "letterKind",
            "example": "L123",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/LetterKind"
            }
          },
          {
            "in": "query",
            "name": "communicationDateFrom",
            "description": "Start date of the search range for the communication date of the message. The date provided here is inclusive, which means that the search results will include messages communicated on this date.\n",
            "example": "2024-04-15T00:00:00.000Z",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "in": "query",
            "name": "communicationDateTo",
            "description": "End date of the search range for the communication date of the message. However, the date provided here is exclusive. This means that the search results will include messages communicated up until the day before this date, but not on the date itself.\n",
            "example": "2024-04-15T00:00:00.000Z",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "in": "query",
            "name": "keyword",
            "description": "The search will find those messages whose applicantReference, applicationNumber or wordMarkSpecification contains the keyword.\n",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "showOnlyUnreadMessages",
            "description": "If true, the search will only retrieve unread messages.\n",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "in": "query",
            "name": "showOnlyReplyableMessages",
            "description": "Interactive messages are those that can be replied to, allowing for a back-and-forth exchange of information.\n\nIf true, the search will only retrieve messages that can be replied to.\n",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/PageNumber"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/MessageSort"
          }
        ],
        "responses": {
          "200": {
            "description": "Results of the search",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSearchResult"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestParameterError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/messages/{messageIdentifier}/preview": {
      "get": {
        "operationId": "getMessageDocumentPreview",
        "summary": "Retrieve the message document preview\n",
        "description": "Retrieve a preview of the message content in PDF format",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/MessageIdentifier"
          }
        ],
        "responses": {
          "200": {
            "description": "A PDF document with the preview of the message content",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              },
              "Warning": {
                "$ref": "#/components/headers/Warning"
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/messages/{messageIdentifier}/document": {
      "get": {
        "operationId": "getMessageDocument",
        "summary": "Retrieve the message document\n",
        "description": "Retrieve the message content in PDF format.",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/MessageIdentifier"
          }
        ],
        "responses": {
          "200": {
            "description": "A PDF document with the message content",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "headers": {
              "Warning": {
                "$ref": "#/components/headers/Warning"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/messages/{messageIdentifier}/logs": {
      "get": {
        "operationId": "getMessageLogs",
        "summary": "Retrieve the message audit logs\n",
        "description": "Retrieve the audit logs corresponding to all actions performed on the message\n",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/MessageIdentifier"
          }
        ],
        "responses": {
          "200": {
            "description": "The audit logs",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "logs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "identifier": {
                            "type": "string",
                            "readOnly": true
                          },
                          "message": {
                            "type": "string",
                            "maxLength": 250,
                            "description": "Text with the message of the log.\n"
                          },
                          "createdBy": {
                            "type": "string",
                            "readOnly": true,
                            "description": "Username of the responsible of this entry in the log.\n"
                          },
                          "creationDateTime": {
                            "type": "string",
                            "format": "date-time",
                            "readOnly": true,
                            "description": "Date and time when the entry was created.\n"
                          }
                        }
                      },
                      "minItems": 0,
                      "maxItems": 100
                    }
                  }
                },
                "example": {
                  "logs": [
                    {
                      "identifier": "2ac1b0e9-47e3-4052-abd0-575dc3b3eecb",
                      "message": "Mark as unread",
                      "creationDateTime": "2023-03-12T10:00:00.000Z",
                      "createdBy": "user01"
                    },
                    {
                      "identifier": "2349852e-6e8b-4ad9-b36e-7152e970106c",
                      "message": "Allocated to Alba Moreta",
                      "creationDate": "2023-03-11T10:00:00.000Z",
                      "createdBy": "user01"
                    },
                    {
                      "message": "Deallocate",
                      "creationDate": "2023-03-10T10:00:00.000Z",
                      "createdBy": "user01"
                    }
                  ]
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/messages/batch-download": {
      "put": {
        "operationId": "batchDownload",
        "summary": "Download a collection of messages\n",
        "description": "Creates a zip file containing the documents of the messages whose identifiers are passed as input",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Language"
          }
        ],
        "requestBody": {
          "description": "Identifiers of the messages to include in the batch download",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MessageIdentifier"
                    },
                    "minItems": 1,
                    "maxItems": 50,
                    "description": "List of identifiers of the messages to include in the batch download\n"
                  },
                  "includeAttachmentsIndicator": {
                    "type": "boolean",
                    "default": false,
                    "description": "Include attachments as part of the batch download"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "identifiers"
                ],
                "example": {
                  "identifiers": [
                    10012047415,
                    10012047423,
                    10012052411
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The zip file containing all the messages",
            "content": {
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidBodyPropertyError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "422": {
            "$ref": "#/components/responses/BusinessRuleViolationError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/messages/batch-move": {
      "put": {
        "operationId": "moveMessagesToMailbox",
        "summary": "Move a collection of messages to a specific mailbox\n",
        "description": "Moves the messages whose identifiers are passed as input to a specific mailbox.\n\nMessages can be moved from the 'inbox' to the 'archive' mailbox or from the 'archive' to the 'inbox' mailbox.\n\nEvery movement of a message creates an entry in the message audit logs.\n",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.write"
            ]
          }
        ],
        "requestBody": {
          "description": "Identifiers of the messages to move and target mailbox",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MessageIdentifier"
                    },
                    "minItems": 1,
                    "maxItems": 100,
                    "description": "List of message identifiers to be moved.\n"
                  },
                  "targetMailboxIdentifier": {
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/MailboxIdentifier"
                      }
                    ],
                    "description": "Target mailbox identifier."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "identifiers",
                  "targetMailboxIdentifier"
                ]
              },
              "example": {
                "identifiers": [
                  101181413220,
                  101281478220
                ],
                "targetMailboxIdentifier": "inbox"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Messages are moved to the target mailbox",
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidBodyPropertyError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "422": {
            "$ref": "#/components/responses/BusinessRuleViolationError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/messages/batch-unread": {
      "put": {
        "operationId": "batchUnread",
        "summary": "Marks a collection of messages as unread/read\n",
        "description": "Marks a collection of messages as unread/read",
        "tags": [
          "Message"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.messages.write"
            ]
          }
        ],
        "requestBody": {
          "description": "Collection of messages to mark as unread/read",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MessageIdentifier"
                    },
                    "minItems": 1,
                    "maxItems": 100,
                    "description": "List of message that will be marked as unread/read.\n"
                  },
                  "unreadIndicator": {
                    "type": "boolean",
                    "default": false
                  }
                },
                "additionalProperties": false,
                "required": [
                  "identifiers"
                ]
              },
              "example": {
                "identifiers": [
                  101181413220,
                  101281478220
                ],
                "unreadIndicator": true
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Messages successful marked as unread/read",
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidBodyPropertyError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "422": {
            "$ref": "#/components/responses/BusinessRuleViolationError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/alerts": {
      "get": {
        "operationId": "retrieveAlerts",
        "summary": "Retrieve alerts",
        "description": "Retrieve alerts",
        "tags": [
          "Alert"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.alerts.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Language"
          },
          {
            "in": "query",
            "name": "mailboxIdentifier",
            "schema": {
              "type": "string",
              "enum": [
                "inbox",
                "archive"
              ],
              "default": "inbox",
              "example": "inbox"
            },
            "description": "Identifier of the mailbox where the message is located.\n"
          },
          {
            "$ref": "#/components/parameters/PageNumber"
          },
          {
            "$ref": "#/components/parameters/PageSize"
          },
          {
            "$ref": "#/components/parameters/AlertSort"
          }
        ],
        "responses": {
          "200": {
            "description": "The alerts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "alerts": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Alert"
                      },
                      "minItems": 0,
                      "maxItems": 100
                    },
                    "totalElements": {
                      "$ref": "#/components/schemas/TotalElements"
                    },
                    "totalPages": {
                      "$ref": "#/components/schemas/TotalPages"
                    },
                    "size": {
                      "$ref": "#/components/schemas/PageSize"
                    },
                    "page": {
                      "$ref": "#/components/schemas/PageNumber"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "alerts",
                    "totalElements",
                    "totalPages",
                    "size",
                    "page"
                  ]
                },
                "example": {
                  "alerts": [
                    {
                      "identifier": "2ac1b0e9-47e3-4052-abd0-575dc3b3eecb",
                      "mailboxIdentifier": "inbox",
                      "message": "The EUTM 'NAt-sport' has changed its representative to Harmut S.",
                      "triggerKind": "CHANGE_OF_REPRESENTATIVE",
                      "status": "RECEIVED",
                      "createdBy": "user01",
                      "creationDateTime": "2023-03-12T10:00:00.000Z"
                    },
                    {
                      "identifier": "2349852e-6e8b-4ad9-b36e-7152e970106c",
                      "mailboxIdentifier": "inbox",
                      "message": "Your EUTM 'Oso Morado' has changed its status to Under Examination",
                      "triggerKind": "CHANGE_OF_STATUS",
                      "status": "RECEIVED",
                      "createdBy": "user01",
                      "creationDateTime": "2023-03-11T10:00:00.000Z"
                    }
                  ],
                  "totalElements": 2,
                  "totalPages": 1,
                  "size": 10,
                  "page": 0
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidRequestParameterError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/alerts/{alertIdentifier}": {
      "get": {
        "summary": "Retrieve alert details",
        "description": "Retrieve alert details",
        "operationId": "getAlertDetails",
        "tags": [
          "Alert"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.alerts.read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Language"
          },
          {
            "$ref": "#/components/parameters/AlertId"
          }
        ],
        "responses": {
          "200": {
            "description": "The alert Details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertDetails"
                }
              }
            },
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/alerts/batch-archive": {
      "put": {
        "operationId": "archiveAlerts",
        "summary": "Archive a collection of alerts\n",
        "description": "Archives those received alerts whose identifiers are passed as input",
        "tags": [
          "Alert"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.alerts.write"
            ]
          }
        ],
        "requestBody": {
          "description": "List of identifiers of the alerts to archive",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "maxItems": 100,
                    "description": "List of identifiers of the alerts to archive\n"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "identifiers"
                ]
              },
              "example": {
                "identifiers": [
                  101181413220,
                  101281478220
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Alerts archived",
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidBodyPropertyError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "422": {
            "$ref": "#/components/responses/BusinessRuleViolationError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    },
    "/alerts/batch-delete": {
      "put": {
        "operationId": "deleteAlerts",
        "summary": "Delete a collection of archived alerts\n",
        "description": "Deletes those archived alerts whose identifiers are passed as input",
        "tags": [
          "Alert"
        ],
        "security": [
          {
            "Oauth2AuthorizationCode": [
              "my-euipo-mailbox.alerts.write"
            ]
          }
        ],
        "requestBody": {
          "description": "List of identifiers of the alerts to delete",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "minItems": 1,
                    "maxItems": 100,
                    "description": "List of identifiers of the alerts to delete\n"
                  }
                },
                "additionalProperties": false,
                "required": [
                  "identifiers"
                ]
              },
              "example": {
                "identifiers": [
                  101181413220,
                  101281478220
                ]
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Alerts deleted",
            "headers": {
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/X-RateLimit-Limit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/X-RateLimit-Remaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/X-RateLimit-Reset"
              },
              "Retry-After": {
                "$ref": "#/components/headers/Retry-After"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/InvalidBodyPropertyError"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedError"
          },
          "422": {
            "$ref": "#/components/responses/BusinessRuleViolationError"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitError"
          },
          "502": {
            "$ref": "#/components/responses/ServiceUnavailableError"
          },
          "default": {
            "$ref": "#/components/responses/DefaultError"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "Oauth2AuthorizationCode": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://euipo.europa.eu/cas-server-webapp/oidc/authorize",
            "tokenUrl": "https://euipo.europa.eu/cas-server-webapp/oidc/accessToken",
            "refreshUrl": "https://euipo.europa.eu/cas-server-webapp/oidc/accessToken",
            "scopes": {
              "my-euipo-mailbox.messages.read": "Grants read access to user messages",
              "my-euipo-mailbox.messages.write": "Grants write access to user messages",
              "my-euipo-mailbox.alerts.read": "Grants read access to user alerts",
              "my-euipo-mailbox.alerts.write": "Grants write access to user alerts"
            }
          }
        },
        "x-ibm-oauth-provider": "production-oauth"
      }
    },
    "headers": {
      "X-RateLimit-Limit": {
        "schema": {
          "type": "integer"
        },
        "description": "The maximum number of requests you're permitted to make per time period."
      },
      "X-RateLimit-Remaining": {
        "schema": {
          "type": "integer"
        },
        "description": "The number of requests remaining in the current rate limit window."
      },
      "X-RateLimit-Reset": {
        "schema": {
          "type": "integer"
        },
        "description": "The relative time in seconds until the current rate-limit window resets.\n"
      },
      "Retry-After": {
        "schema": {
          "type": "integer"
        },
        "description": "The number of seconds to wait until the rate limit window resets. Only sent when the rate limit is reached."
      },
      "Warning": {
        "schema": {
          "type": "string"
        },
        "description": "The Warning HTTP header contains information about possible problems with the status of the message, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Warning",
        "example": "299 - \"018697429 not available\""
      }
    },
    "parameters": {
      "PageNumber": {
        "in": "query",
        "name": "page",
        "schema": {
          "$ref": "#/components/schemas/PageNumber"
        }
      },
      "PageSize": {
        "in": "query",
        "name": "size",
        "schema": {
          "$ref": "#/components/schemas/PageSize"
        }
      },
      "MessageSort": {
        "in": "query",
        "name": "sort",
        "schema": {
          "$ref": "#/components/schemas/Sort"
        },
        "description": "The sort query parameter determines the sort order. It is the sort field that uses the ':' separator\nplus the value 'asc' (ascending) or 'desc' (descending) to indicate sorting direction.\n\n### List of sortable fields\n| Field |\n|--------------------------------------------- |\n| subject |\n| entityKind |\n| communicationDate |\n| personalReference |\n| entityIdentifier |\n",
        "example": "createDate:desc"
      },
      "MessageIdentifier": {
        "in": "path",
        "name": "messageIdentifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/MessageIdentifier"
        }
      },
      "Language": {
        "in": "header",
        "name": "Accept-Language",
        "description": "When defined, it establishes the language in which multilingual elements, such as the 'subject' in messages, will be displayed.",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/EUOfficialLanguage"
        }
      },
      "AlertId": {
        "in": "path",
        "name": "alertIdentifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/AlertIdentifier"
        }
      },
      "AlertSort": {
        "in": "query",
        "name": "sort",
        "schema": {
          "$ref": "#/components/schemas/Sort"
        },
        "description": "The sort query parameter determines the sort order. It is the sort field that uses the ':' separator\nplus the value 'asc' (ascending) or 'desc' (descending) to indicate sorting direction.\n\n### List of sortable fields\n| Field |\n|--------------------------------------------- |\n| message |\n| triggerDateTime |\n",
        "example": "triggerDateTime:desc"
      }
    },
    "responses": {
      "BusinessRuleViolationError": {
        "description": "Business rule violation",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "Business rule violation",
              "status": 422,
              "detail": "The request is invalid and not meeting business rules",
              "instance": "/messages/batch-download",
              "code": "business-rule-violation",
              "errors": [
                {
                  "detail": "Some messages cannot be found in the mailbox of the user",
                  "pointer": "#/identifiers"
                }
              ],
              "correlationId": "8209b6c28160defbf85e8383987c7673"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "InvalidBodyPropertyError": {
        "description": "Bad request",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "Invalid body property",
              "status": 400,
              "detail": "The request body contains an invalid or a malformed property.",
              "instance": "/messages/batch-unread",
              "code": "invalid-body-property",
              "errors": [
                {
                  "detail": "The value provided for the property 'unreadIndicator' does not correspond to the expected type.",
                  "pointer": "#/unreadIndicator"
                }
              ],
              "correlationId": "5f23c78138fb42fbddf422ecb589dc5c"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "InvalidRequestParameterError": {
        "description": "Bad request",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "Invalid parameters",
              "detail": "The request contained invalid, or malformed parameters (path or header or query)",
              "status": 400,
              "instance": "/messages",
              "code": "invalid-parameters",
              "errors": [
                {
                  "detail": "Sort key and sort direction (asc/desc) that can optionally be appended to sort key, separated by the colon ‘:’ character",
                  "parameter": "sort"
                }
              ],
              "correlationId": "b1691dd94ef7a729cf33cf09561b0e0f"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "NotFoundError": {
        "x-summary": "Not found",
        "description": "Resource not found",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "Not found",
              "detail": "The requested resource was not found",
              "status": 404,
              "instance": "/messages/010184693311aaa/logs",
              "code": "not-found",
              "correlationId": "12f334ee8058a218940d0b46bd88576b"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "UnauthorizedError": {
        "x-summary": "Unauthorized",
        "description": "Client request has not been completed because it lacks valid authentication credentials for the requested resource",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "Unauthorized",
              "detail": "Access token not set or invalid, and the requested resource could not be returned",
              "status": 401,
              "instance": "/messages",
              "code": "unauthorized",
              "correlationId": "b8f2fc288f1e9aad434efdc96c255631"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "RateLimitError": {
        "description": "Rate Limit Exceeded",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "/problems/too-many-requests",
              "title": "Too Many Requests",
              "detail": "Rate Limit exceeded",
              "status": 429
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "ServiceUnavailableError": {
        "description": "Service is temporarily unavailable",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "Service temporarily unavailable",
              "detail": "The service is currently unavailable",
              "status": 502,
              "instance": "/messages",
              "code": "service-unavailable",
              "correlationId": "b8f2fc288f1e9aad434efdc96c255631"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      },
      "DefaultError": {
        "x-summary": "Unexpected error",
        "description": "Error occurred - see status code and problem object for more information.",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "example": {
              "type": "about:blank",
              "title": "General error",
              "detail": "The server encountered an unexpected problem",
              "status": 500,
              "instance": "/messages",
              "code": "general-error",
              "correlationId": "b8f2fc288f1e9aad434efdc96c255631"
            }
          }
        },
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/X-RateLimit-Reset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          }
        }
      }
    },
    "schemas": {
      "PageNumber": {
        "type": "integer",
        "format": "int32",
        "default": 0,
        "minimum": 0,
        "example": 0,
        "description": "The results are returned in pages. The page parameter (zero-based) indicates which page to return. For example, page = 2 (third page) and size = 10 will return matching applications No 21 to No 30"
      },
      "PageSize": {
        "type": "integer",
        "format": "int32",
        "default": 10,
        "minimum": 10,
        "maximum": 100,
        "example": 10,
        "description": "Number of results to fetch per page"
      },
      "TotalElements": {
        "type": "integer",
        "format": "int32",
        "minimum": 0,
        "example": 1,
        "description": "Total number of results"
      },
      "TotalPages": {
        "type": "integer",
        "format": "int32",
        "minimum": 0,
        "example": 1,
        "description": "Total number of pages"
      },
      "Sort": {
        "type": "string",
        "pattern": "([\\w+]+:(asc|desc))",
        "description": "Sorting",
        "example": "applicationNumber:desc"
      },
      "MessageSearchResult": {
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "minItems": 0,
            "maxItems": 100
          },
          "totalElements": {
            "$ref": "#/components/schemas/TotalElements"
          },
          "totalPages": {
            "$ref": "#/components/schemas/TotalPages"
          },
          "size": {
            "$ref": "#/components/schemas/PageSize"
          },
          "page": {
            "$ref": "#/components/schemas/PageNumber"
          }
        },
        "additionalProperties": false,
        "required": [
          "messages",
          "totalElements",
          "totalPages",
          "size",
          "page"
        ]
      },
      "Message": {
        "type": "object",
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/MessageIdentifier"
          },
          "mailboxIdentifier": {
            "$ref": "#/components/schemas/MailboxIdentifier"
          },
          "entityKind": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EntityKind"
              }
            ],
            "description": "Type of the proceeding to which the message refers\n"
          },
          "entityIdentifier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EntityIdentifier"
              }
            ],
            "description": "Identifier of the proceeding to which the message refers\n"
          },
          "personalReference": {
            "$ref": "#/components/schemas/PersonalReference"
          },
          "subject": {
            "type": "string",
            "description": "Subject of the message\n"
          },
          "letterKind": {
            "$ref": "#/components/schemas/LetterKind"
          },
          "relatedEntities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entityKind": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/EntityKind"
                    }
                  ],
                  "description": "Type of the entity related to the proceeding which the message refers\n"
                },
                "entityIdentifier": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/EntityIdentifier"
                    }
                  ],
                  "description": "Identifier of the IP Right or person related to proceeding which the message refers\n"
                }
              }
            },
            "description": "Sometimes messages refer to proceedings, such as oppositions, that are not IP rights or persons but are related to them. The following list shows the IP rights or persons related to those proceedings.\n"
          },
          "communicationDate": {
            "type": "string",
            "format": "date",
            "description": "Communication date of the message\n"
          },
          "unreadIndicator": {
            "type": "boolean",
            "description": "If true, it indicates that the recipient did not read this message.\n"
          },
          "replyableIndicator": {
            "type": "boolean",
            "description": "If true, it indicates that the message can be replied to.\n"
          },
          "repliedIndicator": {
            "type": "boolean",
            "description": "If true, it indicates that the message was replied to.\n"
          },
          "commentsIndicator": {
            "type": "boolean",
            "description": "If true, it indicates that there are comments related to this message.\n"
          }
        },
        "additionalProperties": false,
        "required": [
          "identifier",
          "mailboxIdentifier",
          "communicationDate",
          "subject",
          "entityKind",
          "entityIdentifier",
          "unreadIndicator",
          "replyableIndicator",
          "repliedIndicator",
          "commentsIndicator"
        ],
        "example": {
          "identifier": 101181413220,
          "mailboxIdentifier": "inbox",
          "entityKind": "EUTM",
          "entityIdentifier": 1245780,
          "personalReference": "REF01",
          "subject": "L105A - Notification of file closure because filing deficiencies have not been remedied",
          "letterKind": "L105A",
          "relatedEntities": [
            {
              "entityKind": "EUTM",
              "entityIdentifier": 1245780
            }
          ],
          "communicationDate": "2023-06-28T00:00:00.000Z",
          "unreadIndicator": true,
          "replyableIndicator": true,
          "repliedIndicator": false
        }
      },
      "MessageIdentifier": {
        "type": "string",
        "description": "Identifier of the message",
        "readOnly": true,
        "example": "010012047415"
      },
      "MailboxIdentifier": {
        "type": "string",
        "description": "Identifier of the mailbox where the message is located.\n\nThere is a list of predefined system mailboxes:\n- inbox\n- sent\n- archived\n- all\n",
        "example": "inbox"
      },
      "EntityKind": {
        "type": "string",
        "enum": [
          "EU_TRADEMARK",
          "OPPOSITION",
          "TRADEMARK_RECORD",
          "INSPECTION_REQUEST",
          "APPEAL",
          "CANCELLATION",
          "REPRESENTATIVE",
          "APPLICANT",
          "INTERNATIONAL_TRADEMARK_REGISTRATION",
          "INTERNATIONAL_TRADEMARK_APPLICATION",
          "SUBSEQUENT_TRADEMARK_DESIGNATION",
          "SENIORITY",
          "DESIGN_RECORD",
          "EU_DESIGN_APPLICATION",
          "EU_DESIGN",
          "INVALIDITY",
          "PAYMENT",
          "NATIONAL_OFFICE"
        ]
      },
      "EntityIdentifier": {
        "type": "string",
        "example": "018692868",
        "description": "Public identifier of the entity"
      },
      "PersonalReference": {
        "type": "string",
        "example": "PersonalReference001",
        "description": "Value that the user may indicate in the proceeding for his own reference.\n"
      },
      "LetterKind": {
        "type": "string",
        "maxLength": 5,
        "description": "If the message belongs to a predefined set of communication types, specify that type.\n",
        "example": "L123"
      },
      "EUOfficialLanguage": {
        "type": "string",
        "enum": [
          "bg",
          "cs",
          "da",
          "de",
          "el",
          "en",
          "es",
          "et",
          "fi",
          "fr",
          "hr",
          "hu",
          "it",
          "lt",
          "lv",
          "mt",
          "nl",
          "pl",
          "pt",
          "ro",
          "sk",
          "sl",
          "sv"
        ],
        "default": "en"
      },
      "Alert": {
        "type": "object",
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/AlertIdentifier"
          },
          "mailboxIdentifier": {
            "type": "string",
            "enum": [
              "inbox",
              "archived"
            ],
            "description": "Identifier of the mailbox where the alert is located.\n\nThere is a list of predefined system mailboxes:\n- inbox\n- archived\n",
            "example": "inbox"
          },
          "message": {
            "type": "string",
            "description": "Message of the alert"
          },
          "type": {
            "$ref": "#/components/schemas/AlertType"
          },
          "status": {
            "$ref": "#/components/schemas/AlertStatus"
          },
          "triggerDateTime": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Date and time when the alert was triggered.\n"
          },
          "createdBy": {
            "type": "string",
            "readOnly": true,
            "description": "Username of the creator of the alert.\n"
          },
          "receiveAlsoByEmailIndicator": {
            "type": "boolean",
            "description": "If true, it indicates that the recipient will receive a copy of the alert by email.\n"
          }
        },
        "additionalProperties": false,
        "required": [
          "identifier",
          "mailboxIdentifier",
          "message",
          "type",
          "status",
          "triggerDateTime",
          "createdBy",
          "receiveAlsoByEmailIndicator"
        ],
        "example": {
          "identifier": 2737255,
          "mailboxIdentifier": "inbox",
          "message": "31/08/2024: Reminder X",
          "type": "REMINDER",
          "status": "RECEIVED",
          "triggerDateTime": "2024-08-30T15:10:32.000Z",
          "createdBy": "user01",
          "receiveAlsoByEmailIndicator": false
        }
      },
      "AlertIdentifier": {
        "type": "string",
        "description": "Identifier of the alert",
        "readOnly": true,
        "example": "010012047415"
      },
      "AlertType": {
        "type": "string",
        "enum": [
          "FILE",
          "EU_DOMAIN_REGISTRATION",
          "JOINT_REQUESTS",
          "MONITORING",
          "REMINDER"
        ],
        "description": "Type of the alert:\n\n- FILE. An alert that monitors specific events related to Trade Marks and Designs.\n- EU_DOMAIN_REGISTRATION. An alert that tracks .eu domain registrations that are identical to the Trade Mark denomination.\n- MONITORING. An alert based on user-defined search criteria for Trade Marks and Designs.\n- REMINDER. An alert triggered on a specific date to display a user-defined message. \n- JOINT_REQUESTS. This alert type is deprecated and no longer in use.\n"
      },
      "AlertStatus": {
        "type": "string",
        "enum": [
          "RECEIVED",
          "ARCHIVED"
        ],
        "description": "Status of the alert\n\n- RECEIVED. Alert received in 'inbox' mailbox\n- ARCHIVED. Alert archived in 'archived' mailbox\n"
      },
      "AlertDetails": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/Alert"
          },
          {
            "$ref": "#/components/schemas/FileAlert"
          },
          {
            "$ref": "#/components/schemas/EuDomainRegistrationAlert"
          },
          {
            "$ref": "#/components/schemas/MonitoringAlert"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "FILE": "#/components/schemas/FileAlert",
            "EU_DOMAIN_REGISTRATION": "#/components/schemas/EuDomainRegistrationAlert",
            "JOINT_REQUESTS": "#/components/schemas/Alert",
            "MONITORING": "#/components/schemas/MonitoringAlert",
            "REMINDER": "#/components/schemas/Alert"
          }
        }
      },
      "FileAlert": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Alert"
          },
          {
            "type": "object",
            "properties": {
              "entityKind": {
                "$ref": "#/components/schemas/AlertEntityType"
              },
              "entityIdentifier": {
                "type": "string",
                "description": "Identifier of the entity linked to the alert\n"
              },
              "triggerKind": {
                "$ref": "#/components/schemas/TriggerKind"
              }
            }
          }
        ],
        "additionalProperties": false,
        "required": [
          "message",
          "status",
          "triggerDateTime",
          "createdBy",
          "receiveAlsoByEmailIndicator",
          "entityKind",
          "entityIdentifier",
          "triggerKind"
        ],
        "example": {
          "identifier": 2737255,
          "mailboxIdentifier": "inbox",
          "message": "31/08/2024: Reminder X",
          "type": "FILE",
          "status": "RECEIVED",
          "triggerDateTime": "2024-08-30T15:10:32.000Z",
          "createdBy": "user01",
          "receiveAlsoByEmailIndicator": false,
          "entityKind": "EU_TRADEMARK",
          "entityIdentifier": 19078234,
          "triggerKind": "EUTM_APPLICATION_UNDER_EXAMINATION"
        }
      },
      "AlertEntityType": {
        "type": "string",
        "enum": [
          "EU_TRADEMARK",
          "INTERNATIONAL_TRADEMARK_REGISTRATION",
          "EU_DESIGN",
          "OPPOSITION"
        ],
        "description": "Type of the entity linked to the alert\n\n- EU_TRADEMARK. European Union Trade Mark\n- INTERNATIONAL_TRADEMARK_REGISTRATION. International Trade Mark\n- EU_DESIGN. European Union Design\n- OPPOSITION. Opposition\n"
      },
      "TriggerKind": {
        "type": "string",
        "enum": [
          "EUTM_APPLICATION_FILED",
          "EUTM_APPLICATION_UNDER_EXAMINATION",
          "EUTM_APPLICATION_PUBLISHED",
          "EUTM_OPPOSITION_PERIOD_OVER_AND_REGISTRATION_PENDING",
          "EUTM_REGISTERED",
          "EUTM_APPLICATION_WITHDRAWN",
          "EUTM_APPLICATION_REFUSED",
          "EUTM_OPPOSITION_APPEALED",
          "EUTM_REGISTRATION_CANCELLATION_PENDING",
          "EUTM_REGISTRATION_CANCELLED",
          "EUTM_REGISTRATION_SURRENDERED",
          "EUTM_REGISTRATION_EXPIRED",
          "EUTM_APPLICATION_OPPOSED",
          "IR_INTERNATIONAL_REGISTRATION_RECEIVED",
          "IR_APPLICATION_UNDER_EXAMINATION",
          "IR_REFUSED",
          "IR_APPLICATION_OPPOSED",
          "IR_INTERNATIONAL_REGISTRATION_ACCEPTED",
          "IR_INTERNATIONAL_REGISTRATION_RENEWED",
          "IR_INTERNATIONAL_REGISTRATION_DECISION_APPEALED",
          "IR_INTERNATIONAL_REGISTRATION_REMOVED_FROM_REGISTER",
          "IR_INTERNATIONAL_REGISTRATION_CANCELLED",
          "IR_INTERNATIONAL_REGISTRATION_PUBLISHED",
          "EUD_REGISTERED_AND_FULLY_PUBLISHED_A1",
          "EUD_REGISTERED_AND_SUBJECT_TO_DEFERMENT_A2",
          "EUD_LACK_OF_EFFECTS",
          "EUD_DESIGN_SURRENDERED",
          "EUD_INVALIDITY_PROCEDURE_PENDING",
          "EUD_DESIGN_DECLARED_INVALID",
          "EUD_DESIGN_LAPSED",
          "OPPO_OPPOSITION_CLOSED",
          "OPPO_OPPOSITION_SUSPENDED",
          "OPPO_OPPOSITION_APPEALED",
          "OPPO_OPPOSITION_WITHDRAWN",
          "OPPO_OPPOSITION_OPEN",
          "OPPO_OPPOSITION_APPEALEABLE",
          "OPPO_OPPOSITION_BLOCKED_PER_JOINDER",
          "OPEN_FOR_RENEWAL",
          "CHANGE_OF_OWNERSHIP",
          "CHANGE_OF_REPRESENTATIVE",
          "OPPO_PERIOD_FINISHING"
        ],
        "description": "Specific event on the entity that caused the alert to be triggered\n"
      },
      "EuDomainRegistrationAlert": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Alert"
          },
          {
            "type": "object",
            "properties": {
              "wordMarkSpecification": {
                "type": "string",
                "description": "Wordmark specification used to search for .eu domains\n"
              },
              "language": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/EUOfficialLanguage"
                  }
                ],
                "description": "Language used to search for .eu domains\n"
              },
              "euridStatus": {
                "type": "string",
                "enum": [
                  "RECENTLY_CREATED_DOMAIN",
                  "ALREADY_EXISTING_DOMAIN",
                  "NO_SIMILAR_DOMAINS_FOUND"
                ],
                "description": "Status of the search for .eu domains:\n\n- RECENTLY_CREATED_DOMAIN. Recently created in the .eu Registry\n- ALREADY_EXISTING_DOMAIN. Already existing in the .eu Registry\n- NO_SIMILAR_DOMAINS_FOUND. No similar domains were found in .eu Registry\n"
              },
              "matches": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "domainName": {
                      "type": "string",
                      "description": "Domain name that matches the search criteria\n"
                    },
                    "trademarkIdentifier": {
                      "type": "string",
                      "description": "Identifier of the trademark that matches the search criteria\n"
                    },
                    "registrationDate": {
                      "type": "string",
                      "format": "date",
                      "description": "Registration date of the .eu domain that matches the search criteria\n"
                    },
                    "creationDate": {
                      "type": "string",
                      "format": "date",
                      "description": "Creation date of the .eu domain that matches the search criteria\n"
                    },
                    "whoisLink": {
                      "type": "string",
                      "format": "uri",
                      "description": "Link to the WHOIS record of the .eu domain that matches the search criteria\n"
                    }
                  }
                },
                "description": "List of .eu domains that match the search criteria\n"
              }
            }
          }
        ],
        "additionalProperties": false,
        "required": [
          "message",
          "status",
          "triggerDateTime",
          "createdBy",
          "receiveAlsoByEmailIndicator",
          "wordMarkSpecification",
          "language",
          "euridStatus"
        ],
        "example": {
          "identifier": 2737255,
          "mailboxIdentifier": "inbox",
          "message": "31/08/2024: Reminder X",
          "type": "EU_DOMAIN_REGISTRATION",
          "status": "RECEIVED",
          "triggerDateTime": "2024-08-30T15:10:32.000Z",
          "createdBy": "user01",
          "receiveAlsoByEmailIndicator": false,
          "wordMarkSpecification": "HOGAN LOVELLS",
          "language": "en",
          "euridStatus": "ALREADY_EXISTING_DOMAIN",
          "matches": [
            {
              "domainName": "myuser.eu",
              "trademarkIdentifier": 8866501,
              "registrationDate": "2019-07-03T00:00:00.000Z",
              "creationDate": "2019-07-03T00:00:00.000Z",
              "whoisLink": "https://whois.eurid.eu/en?domain=myuser.eu"
            }
          ]
        }
      },
      "MonitoringAlert": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Alert"
          },
          {
            "type": "object",
            "properties": {
              "query": {
                "type": "string",
                "description": "Query used to search for Trade Marks and Designs\n"
              },
              "additionEvents": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MonitorEvent"
                },
                "description": "List of entities (Trade Marks / Designs) that match the query\n"
              },
              "deletionEvents": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MonitorEvent"
                },
                "description": "List of entities (Trade Marks / Designs) that matched the query in the previous execution and do not match now\n"
              }
            }
          }
        ],
        "additionalProperties": false,
        "required": [
          "message",
          "status",
          "triggerDateTime",
          "createdBy",
          "receiveAlsoByEmailIndicator",
          "query",
          "additionEvents",
          "deletionEvents"
        ],
        "example": {
          "identifier": 2737255,
          "mailboxIdentifier": "inbox",
          "message": "31/08/2024: Reminder X",
          "type": "FILE",
          "status": "RECEIVED",
          "triggerDateTime": "2024-08-30T15:10:32.000Z",
          "createdBy": "user01",
          "receiveAlsoByEmailIndicator": false,
          "query": "Filing date before 20/06/2024 and Filing date after 01/05/2024 and Representative ID number contains 10014",
          "additionEvents": [
            {
              "title": "EUTM - 019009607",
              "href": "https://euipo.europa.eu/eSearch/#details/trademarks/019009607"
            },
            {
              "title": "EUTM - 019009821 - This is a wordphrase",
              "href": "https://euipo.europa.eu/eSearch/#details/trademarks/019009821"
            }
          ],
          "deletionEvents": [
            {
              "title": "EUTM - 019009951",
              "href": "https://euipo.europa.eu/eSearch/#details/trademarks/019009951"
            },
            {
              "title": "EUTM - 019009770 - Vino blanco",
              "href": "https://euipo.europa.eu/eSearch/#details/trademarks/019009770"
            }
          ]
        }
      },
      "MonitorEvent": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Text containing the type of entity and its identifier\n",
            "example": "EUTM - 019009607"
          },
          "href": {
            "type": "string",
            "format": "uri",
            "description": "Link to the page with the details of the entity in eSearch\nexample: https://euipo.europa.eu/eSearch/#details/trademarks/019009607\n",
            "additionalProperties": false
          }
        }
      },
      "Problem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "format": "uri-reference",
            "description": "A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type.\n",
            "default": "about:blank"
          },
          "title": {
            "type": "string",
            "description": "A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.\n",
            "example": "some title for the error situation"
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "description": "The HTTP status code generated by the origin server for this occurrence of the problem.\n",
            "minimum": 100,
            "maximum": 600
          },
          "detail": {
            "type": "string",
            "description": "A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.\n",
            "example": "some description for the error situation"
          },
          "instance": {
            "type": "string",
            "format": "uri-reference",
            "description": "A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.\n",
            "example": "/some/uri-reference#specific-occurrence-context"
          },
          "code": {
            "type": "string",
            "description": "A machine-readable error code that identifies the specific occurrence of the problem. May be used to locate the root of this problem in the source code.\n",
            "example": "some-code"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            }
          },
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "type",
          "title",
          "status",
          "detail",
          "instance",
          "code"
        ],
        "example": {
          "type": "about:blank",
          "title": "Invalid Body",
          "status": 400,
          "detail": "The request body contains an invalid or a malformed property.",
          "instance": "/messages/batch-unread",
          "code": "invalid-body",
          "errors": [
            {
              "detail": "Property 'identifiers' must not be null",
              "pointer": "#/identifiers"
            }
          ],
          "correlationId": "6d76b148e661cae10654ff0075243e85"
        }
      },
      "ErrorDetail": {
        "type": "object",
        "properties": {
          "details": {
            "type": "string",
            "description": "A description of the specific error"
          },
          "parameter": {
            "type": "string",
            "description": "The name of the parameter that caused the error."
          },
          "pointer": {
            "type": "string",
            "description": "A JSON Pointer that indicates the location of the error within the request body."
          },
          "header": {
            "type": "string",
            "description": "The name of the header that caused the error"
          }
        },
        "required": [
          "details"
        ],
        "example": {
          "detail": "Property 'identifiers' must not be null'",
          "pointer": "#/identifiers"
        }
      }
    }
  },
  "x-ibm-endpoints": [
    {
      "url": "https://api.euipo.europa.eu/my-euipo-mailbox"
    }
  ]
}