docstr: Get chart's permanent link state.
  ---
  get:
    summary: Get chart's permanent link state
    parameters:
    - in: path
      schema:
        type: string
      name: key
    responses:
      200:
        description: Returns the stored form_data.
        content:
          application/json:
            schema:
              type: object
              properties:
                state:
                  type: object
                  description: The stored state
      400:
        $ref: '#/components/responses/400'
      401:
        $ref: '#/components/responses/401'
      404:
        $ref: '#/components/responses/404'
      422:
        $ref: '#/components/responses/422'
      500:
        $ref: '#/components/responses/500'
docstr_tok: ["Get","chart","'s","permanent","link","state",".","--","-","get",":","summary",":","Get","chart","'s","permanent","link","state","parameters",":","-","in",":","path","schema",":","type",":","string","name",":","key","responses",":","200",":","description",":","Returns","the","stored","form_data",".","content",":","application\/json",":","schema",":","type",":","object","properties",":","state",":","type",":","object","description",":","The","stored","state","400",":","$","ref",":","'","#","\/components\/responses\/400'","401",":","$","ref",":","'","#","\/components\/responses\/401'","404",":","$","ref",":","'","#","\/components\/responses\/404'","422",":","$","ref",":","'","#","\/components\/responses\/422'","500",":","$","ref",":","'","#","\/components\/responses\/500","'"]
code: def get(self, key: str) -> Response:
      """Get chart's permanent link state.
      ---
      get:
        summary: Get chart's permanent link state
        parameters:
        - in: path
          schema:
            type: string
          name: key
        responses:
          200:
            description: Returns the stored form_data.
            content:
              application/json:
                schema:
                  type: object
                  properties:
                    state:
                      type: object
                      description: The stored state
          400:
            $ref: '#/components/responses/400'
          401:
            $ref: '#/components/responses/401'
          404:
            $ref: '#/components/responses/404'
          422:
            $ref: '#/components/responses/422'
          500:
            $ref: '#/components/responses/500'
      """
      try:
          value = GetExplorePermalinkCommand(key=key).run()
          if not value:
              return self.response_404()
          return self.response(200, **value)
      except ExplorePermalinkInvalidStateError as ex:
          return self.response(400, message=str(ex))
      except (
          ChartAccessDeniedError,
          DatasetAccessDeniedError,
      ) as ex:
          return self.response(403, message=str(ex))
      except (ChartNotFoundError, DatasetNotFoundError) as ex:
          return self.response(404, message=str(ex))
  
file_path: superset/superset/explore/permalink/api.py
imports: import logging
  from flask import request, Response
  from flask_appbuilder.api import expose, protect, safe
  from marshmallow import ValidationError
  from superset.commands.chart.exceptions import ChartAccessDeniedError, ChartNotFoundError
  from superset.commands.dataset.exceptions import DatasetAccessDeniedError, DatasetNotFoundError
  from superset.commands.explore.permalink.create import CreateExplorePermalinkCommand
  from superset.commands.explore.permalink.get import GetExplorePermalinkCommand
  from superset.constants import MODEL_API_RW_METHOD_PERMISSION_MAP
  from superset.explore.permalink.exceptions import ExplorePermalinkInvalidStateError
  from superset.explore.permalink.schemas import ExplorePermalinkStateSchema
  from superset.extensions import event_logger
  from superset.key_value.exceptions import KeyValueAccessDeniedError
  from superset.views.base_api import BaseSupersetApi, requires_json, statsd_metrics
label_desc: Use image node_id 2 for calling the ExplorePermalinkRestApi obj's underlying member method code with example usage: obj.get(key) and returns: self, self, self, self, self