openapi: 3.0.3
info:
  title: medallia-api
  version: 0.0.1
  description: API for Medallia Surveys system
servers:
- url: https://api-us.kampyle.com/api/v1
paths:
  /accessToken:
    post:
      description: This API is used to retrieve the temporary access token that allows
        your app to access all other APIs
      responses:
        '200':
          description: Access Token to access Medallia API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsAccessTokenWrapper'
        '401':
          description: Unauthorized request
        '500':
          description: All other errors.
  /configuration:
    get:
      description: This API returns the full configuration as defined in the Medallia
        Digital command center. It returns the list of surveys, their content and
        business logic as well as targeting and segmentation rules.
      responses:
        '200':
          description: Configuration and forms
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsConfiguration'
        '400':
          description: The body or any of the parameters are invalid/malformed.
        '401':
          description: Unauthorized request
        '500':
          description: All other errors.
  /feedback:
    post:
      description: This API allows the application to submit feedback collected in
        the app to the Medallia Digital
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedback'
        required: true
      responses:
        '200':
          description: Successful response
        '400':
          description: The body or any of the parameters are invalid/malformed.
        '401':
          description: Unauthorized request
        '500':
          description: All other errors.
components:
  schemas:
    ComEdsanchaMedalliaApiV0ModelsComponentDropdown:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - placeholder
      - label
      - options
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        placeholder:
          description: Component placeholder
          type: string
        label:
          description: Component label
          type: string
        options:
          description: Maximum number of characters
          type: array
          items:
            type: string
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsComponentGrading:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - label
      - ratingViewType
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        label:
          description: Component label
          type: string
        ratingViewType:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsRatingViewType'
          description: Rating View Type
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsDynamicData:
      type: object
      required:
      - index
      - id
      - required
      - component
      - unique_name
      - placeholder
      - label
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        required:
          description: Component required
          type: boolean
        component:
          description: Component type
          type: string
        unique_name:
          description: Component unique name
          type: string
        placeholder:
          description: Component placeholder
          type: string
        label:
          description: Component placeholder
          type: string
        description:
          description: Component description
          type: string
        options:
          description: Options available if required
          type: array
          items:
            type: string
        imageObject:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsImage'
          description: Image if required
    ComEdsanchaMedalliaApiV0ModelsFeedbackGrading:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Grading selected value
          type: integer
          format: int32
        type:
          description: Component feedback type
          default: grading
          type: string
    ComEdsanchaMedalliaApiV0ModelsTriggerData:
      type: object
      properties:
        numberOfAppSession:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsNumberOfAppSession'
          description: Number of App Sessions to show the invite, with compare string
        timeInForeground:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsTimeInForeground'
          description: App Time in foreground in seconds to show the invite, with
            compare string
        mobileappVersion:
          description: Mobile App Versions
          type: array
          items:
            type: string
        submitted:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsNumberOfDays'
          description: Don't invite a visitor who submitted feedback in the past x
            days
        declined:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsNumberOfDays'
          description: Don't invite a visitor who declined an invitation in the past
            x days
        mobileosVersion:
          description: Mobile App Versions
          type: array
          items:
            type: string
        percentageOfSessions:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsPercentageOfSessions'
          description: Invite to this percentage of sessions
        genericRule:
          description: Set of generic rules creates in the invitation settings
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackNps:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: NPS selected value
          type: integer
          format: int32
        type:
          description: Component feedback type
          default: nps
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackData:
      description: Object that will hold the form pages and custom parameters.
      type: object
      required:
      - pages
      properties:
        customParams:
          description: List of survey's pages results
          type: object
          additionalProperties: true
        pages:
          description: List of survey's pages results
          type: array
          items:
            $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackPage'
    ComEdsanchaMedalliaApiV0ModelsFeedbackTextArea:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Text Area Content
          type: string
        type:
          description: Component feedback type
          default: textArea
          type: string
    ComEdsanchaMedalliaApiV0ModelsComponentNps:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - label
      - ratingViewType
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        label:
          description: Component placeholder
          type: string
        description:
          description: Component description
          type: string
        ratingViewType:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsRatingViewType'
          description: Rating View Type
    ComEdsanchaMedalliaApiV0ModelsFeedbackRadioSelector:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Radio Selected Value
          type: integer
          format: int32
        type:
          description: Component feedback type
          default: radio
          type: string
    ComEdsanchaMedalliaApiV0ModelsForm:
      type: object
      required:
      - formId
      - name
      - title
      - formType
      - formJson
      properties:
        formId:
          description: Form Identifier
          type: integer
          format: int32
        name:
          description: Form name
          type: string
        title:
          description: Form title
          type: string
        formType:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsFormType'
          description: Form type
        inviteData:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsInviteData'
          description: Invitation data
        triggerData:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsTriggerData'
          description: Invitation trigger conditions
        formJson:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFormJson'
          description: Wrapper around form data
    ComEdsanchaMedalliaApiV0ModelsNumberOfAppSession:
      type: object
      required:
      - number
      - compareString
      properties:
        number:
          description: Number of app sessions
          type: string
        compareString:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsCompareString'
          description: Compare String
    ComEdsanchaMedalliaApiV0ModelsComponentTextInput:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - placeholder
      - label
      - max_chars
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        placeholder:
          description: Component placeholder
          type: string
        label:
          description: Component label
          type: string
        max_chars:
          description: Maximum number of characters
          type: integer
          format: int32
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsInviteData:
      type: object
      required:
      - invitationHeadline
      - invitationText
      - provideButtonText
      - declineButtonText
      - laterButtonText
      properties:
        invitationHeadline:
          description: Invitation Headline
          type: string
        invitationText:
          description: Invitation Text
          type: string
        provideButtonText:
          description: Provide feedback button text
          type: string
        declineButtonText:
          description: Decline provide feedback button text
          type: string
        laterButtonText:
          description: Provide feedback later button text
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackPage:
      description: Object that will hold the form page
      type: object
      required:
      - components
      properties:
        components:
          description: List of survey's pages results
          type: array
          items:
            $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0UnionsFeedbackUnion'
    ComEdsanchaMedalliaApiV0ModelsComponentLabel:
      type: object
      required:
      - index
      - id
      - unique_name
      - num_of_lines
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        labelContent:
          description: Label Content
          type: string
        num_of_lines:
          description: Label Number of Lines
          type: integer
          format: int32
    ComEdsanchaMedalliaApiV0ModelsAccessTokenWrapper:
      description: JWT Access Token to be used to access the APIe
      type: object
      required:
      - accessToken
      properties:
        accessToken:
          description: JWT Access Token to be used to access the API
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackTextInput:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Text Area Content
          type: string
        type:
          description: Component feedback type
          default: textInput
          type: string
    ComEdsanchaMedalliaApiV0ModelsTimeInForeground:
      type: object
      required:
      - time
      - compareString
      properties:
        time:
          description: Time in Foreground, in seconds
          type: string
        compareString:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsCompareString'
          description: Compare String
    ComEdsanchaMedalliaApiV0ModelsComponentRadioSelector:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - label
      - options
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        label:
          description: Component label
          type: string
        options:
          description: Maximum number of characters
          type: array
          items:
            type: string
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackGrading1to10:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Grading selected value
          type: integer
          format: int32
        type:
          description: Component feedback type
          default: grading1to10
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedback:
      description: Feedback main object with survey's results
      type: object
      required:
      - formId
      - dynamicData
      properties:
        formId:
          description: The submitted form id (from the configuration).
          type: integer
          format: int32
        dynamicData:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackData'
          description: Survey Feedback Data
    ComEdsanchaMedalliaApiV0ModelsComponentImage:
      type: object
      required:
      - index
      - id
      - unique_name
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        imageObject:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsImage'
          description: Image Object uploaded to Medallia, if it's a copy of a previous
            survey this field doesnt' show up
        uploadedResource:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsImage'
          description: Image Object from a copied survey, it only shows when imageObject
            is not present
    ComEdsanchaMedalliaApiV0ModelsFeedbackGrading0to10:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Grading selected value
          type: integer
          format: int32
        type:
          description: Component feedback type
          default: grading0to10
          type: string
    ComEdsanchaMedalliaApiV0ModelsPage:
      type: object
      required:
      - name
      - index
      - dynamicData
      properties:
        name:
          description: Page name
          type: string
        index:
          description: Page index
          type: integer
          format: int32
        dynamicData:
          type: array
          items:
            $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0UnionsComponentUnion'
    ComEdsanchaMedalliaApiV0ModelsComponentCheckbox:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - label
      - options
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        label:
          description: Component label
          type: string
        options:
          description: Maximum number of characters
          type: array
          items:
            type: string
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsFormJson:
      type: object
      required:
      - pages
      properties:
        pages:
          description: Form Page
          type: array
          items:
            $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsPage'
    ComEdsanchaMedalliaApiV0ModelsImage:
      type: object
      required:
      - name
      - url
      properties:
        name:
          description: Image Name
          type: string
        url:
          description: Image Url
          type: string
    ComEdsanchaMedalliaApiV0ModelsPercentageOfSessions:
      type: object
      required:
      - prec
      properties:
        prec:
          description: Don't invite a visitor who submitted feedback in the past x
            days
          type: string
    ComEdsanchaMedalliaApiV0ModelsComponentTextArea:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - placeholder
      - label
      - num_of_lines
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        placeholder:
          description: Component placeholder
          type: string
        label:
          description: Component placeholder
          type: string
        num_of_lines:
          description: Number of lines, string parameter though (－‸ლ)
          type: integer
          format: int32
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackCheckbox:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Checkbox selected value
          type: array
          items:
            type: integer
            format: int32
        type:
          description: Component feedback type
          default: checkbox
          type: string
    ComEdsanchaMedalliaApiV0ModelsFeedbackDropdown:
      type: object
      required:
      - index
      - id
      - unique_name
      - value
      - type
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        value:
          description: Dropdown selected value
          type: integer
          format: int32
        type:
          description: Component feedback type
          default: select
          type: string
    ComEdsanchaMedalliaApiV0ModelsComponentGrading0to10:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - label
      - ratingViewType
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        label:
          description: Component label
          type: string
        ratingViewType:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsRatingViewType'
          description: Rating View Type
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0ModelsConfiguration:
      description: Configuration main object, including forms
      type: object
      required:
      - propertyId
      - feedbackSubmitUrl
      - forms
      properties:
        propertyId:
          description: Account id
          type: integer
          format: int32
        feedbackSubmitUrl:
          description: url
          type: string
        forms:
          description: Definition and configuration of forms that were created in
            the command center
          type: array
          items:
            $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsForm'
    ComEdsanchaMedalliaApiV0ModelsNumberOfDays:
      type: object
      required:
      - days
      properties:
        days:
          description: Don't invite a visitor who submitted feedback in the past x
            days
          type: string
    ComEdsanchaMedalliaApiV0ModelsComponentGrading1to10:
      type: object
      required:
      - index
      - id
      - unique_name
      - required
      - label
      - ratingViewType
      properties:
        index:
          description: Component index
          type: integer
          format: int32
        id:
          description: Component id
          type: integer
          format: int32
        unique_name:
          description: Unique name
          type: string
        required:
          description: Component required
          type: boolean
        label:
          description: Component label
          type: string
        ratingViewType:
          $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0EnumsRatingViewType'
          description: Rating View Type
        description:
          description: Component description
          type: string
    ComEdsanchaMedalliaApiV0EnumsFormType:
      type: string
      enum:
      - mobileInvitation
      - code
    ComEdsanchaMedalliaApiV0EnumsRatingViewType:
      type: string
      enum:
      - slide
      - numbersSquare
      - gradingSlider
      - gradingDropdown
      - stars
      - emoticons
      - numbers
      - smilies
      - bars
    ComEdsanchaMedalliaApiV0EnumsCompareString:
      type: string
      enum:
      - greaterThan
      - equals
      - smallerThan
    ComEdsanchaMedalliaApiV0UnionsFeedbackUnion:
      description: Represents the component or fields to be filled by the user
      oneOf:
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackNps'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackTextArea'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackTextInput'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackRadioSelector'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackCheckbox'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackDropdown'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackGrading'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackGrading0to10'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsFeedbackGrading1to10'
    ComEdsanchaMedalliaApiV0UnionsComponentUnion:
      description: Represents the question or fields to be filled by the user
      oneOf:
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentLabel'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentImage'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentNps'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentTextArea'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentTextInput'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentRadioSelector'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentCheckbox'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentDropdown'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentGrading'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentGrading0to10'
      - $ref: '#/components/schemas/ComEdsanchaMedalliaApiV0ModelsComponentGrading1to10'
  securitySchemes:
    authentication_header:
      type: apiKey
      description: Authentication header, it can be a request Token or an access Token
      name: Authentication
      in: header
security:
- authentication_header: []
