def METHOD_NAME(self) -> Response:
    """Create a new permanent link.
    ---
    post:
      summary: Create a new permanent link
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExplorePermalinkStateSchema'
      responses:
        201:
          description: The permanent link was stored successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  key:
                    type: string
                    description: The key to retrieve the permanent link data.
                  url:
                    type: string
                    description: permanent link.
        400:
          $ref: '#/components/responses/400'
        401:
          $ref: '#/components/responses/401'
        422:
          $ref: '#/components/responses/422'
        500:
          $ref: '#/components/responses/500'
    """
    try:
        state = self.add_model_schema.load(request.json)
        key = CreateExplorePermalinkCommand(state=state).run()
        http_origin = request.headers.environ.get("HTTP_ORIGIN")
        url = f"{http_origin}/superset/explore/p/{key}/"
        return self.response(201, key=key, url=url)
    except ValidationError as ex:
        return self.response(400, message=ex.messages)
    except (
        ChartAccessDeniedError,
        DatasetAccessDeniedError,
        KeyValueAccessDeniedError,
    ) as ex:
        return self.response(403, message=str(ex))
    except (ChartNotFoundError, DatasetNotFoundError) as ex:
        return self.response(404, message=str(ex))