Swittest API

REST API for the Swittest managed EMV test-automation service. Exposes test-suite and test discovery, test execution (including a streaming run channel and ad-hoc custom tests), configuration-file browsing, scope verification for BIN/CAPK/CR/EMV definitions, and TLV/tag/log parsers for Eval+ output. OAuth 2.0 password grant issues a bearer token from /auth/token. Version 0.13.0 publishes 22 operations across 22 paths as OpenAPI 3.1.0. Switstack hosts separate Swittest instances per customer or partner, so no single public base URL is published.

OpenAPI Specification

switstack-swittest-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Swittest API 🚀
  description: '

    ### Prerequisites

    To use this API, you must have an active organization and an active user. If you don''t have an account
    yet, please contact us at [contact@switstack.io](mailto:contact@switstack.io).


    ### Roles

    - **Data**: Can get test suites, tests, configs and vcards.

    - **Full**: Can fully use swittest.


    ### Authentication

    To make authenticated requests, call `/auth/token` with your credentials and the appropriate grant
    type. An access token will be returned, which must be included in the request''s Authorization header
    using the Bearer prefix (`Authorization: Bearer <access_token>`).


    '
  version: 0.13.0
paths:
  /auth/token:
    post:
      tags:
      - Auth
      summary: Token
      operationId: token
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OAuth2Form'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/refresh-token:
    post:
      tags:
      - Auth
      summary: Refresh Token
      operationId: refresh_token
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_refresh_token_auth_refresh_token_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/revoke-token:
    post:
      tags:
      - Auth
      summary: Revoke Token
      operationId: revoke_token
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_revoke_token_auth_revoke_token_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/configs/list:
    get:
      tags:
      - Config
      summary: List Config Files
      operationId: list_config_files
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: path
        in: query
        required: false
        schema:
          type: string
          format: path
          default: .
          title: Path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDirectorySchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/configs/load:
    get:
      tags:
      - Config
      summary: Load Config File
      operationId: load_config_file
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: path
        in: query
        required: true
        schema:
          type: string
          format: path
          title: Path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Load Config File Api Configs Load Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/suites:
    get:
      tags:
      - Suite
      summary: List Test Suites
      operationId: list_test_suites
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
                title: Response List Test Suites Api Suites Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/suites/{test_suite_name_or_index}:
    get:
      tags:
      - Suite
      summary: Get Test Suite
      operationId: get_test_suite
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: test_suite_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Suite Name Or Index
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSuiteSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/tests/{test_suite_name_or_index}/{test_name_or_index}:
    get:
      tags:
      - Test
      summary: Get Test
      operationId: get_test
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: test_suite_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Suite Name Or Index
      - name: test_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Name Or Index
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/tests/{test_suite_name_or_index}/{test_name_or_index}/config:
    get:
      tags:
      - Test
      summary: Get Test Config
      operationId: get_test_config
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: test_suite_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Suite Name Or Index
      - name: test_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Name Or Index
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConfigSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/tests/{test_suite_name_or_index}/{test_name_or_index}/vcard:
    get:
      tags:
      - Test
      summary: Get Test Vcard
      operationId: get_test_vcard
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: test_suite_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Suite Name Or Index
      - name: test_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Name Or Index
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - type: array
                  items:
                    type: string
                - type: 'null'
                title: Response Get Test Vcard Api Tests  Test Suite Name Or Index   Test Name Or Index  Vcard
                  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/tests/{test_suite_name_or_index}/{test_selection}:
    post:
      tags:
      - Test
      summary: Run Tests
      description: 'This endpoint runs one or more tests from a specified test suite. The response is
        streamed in real-time using Server-Sent Events (SSE) to provide continuous updates on the test
        execution status.


        <b>Possible test selection values:</b>

        - A single test name<br>

        - An index: <b>1036</b><br>

        - A list of indexes: <b>0, 99, 1036</b><br>

        - A range: <b>0-5</b><br>

        - A list of ranges: <b>0-5, 15-40</b><br>

        - A combination of ranges and indexes: <b>0-5, 8, 9, 15-40</b><br>

        - Select all tests with the value <b>all</b><br><br>


        <b>Verbose mode levels:</b>

        - <b>Level 0</b>: Status and errors only<br>

        - <b>Level 1</b>: Level 0 + payment data and log data sets<br>

        - <b>Level 2</b>: Level 1 + parsed authorization TLV in payment data<br>

        - <b>Level 3</b>: Level 2 + parsed DF8129, DF8115, and DF8116 tags<br>'
      operationId: run_tests
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: test_suite_name_or_index
        in: path
        required: true
        schema:
          type: string
          title: Test Suite Name Or Index
      - name: test_selection
        in: path
        required: true
        schema:
          type: string
          title: Test Selection
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunTestSchema'
      responses:
        '200':
          description: Successful Response
          content:
            text/event-stream:
              itemSchema:
                type: object
                properties:
                  data:
                    type: string
                  event:
                    type: string
                  id:
                    type: string
                  retry:
                    type: integer
                    minimum: 0
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/tests:
    post:
      tags:
      - Test
      summary: Run Custom Test
      description: '<b>Verbose mode levels:</b>

        - <b>Level 0</b>: Status and errors only<br>

        - <b>Level 1</b>: Level 0 + payment data and log data sets<br>

        - <b>Level 2</b>: Level 1 + parsed authorization TLV in payment data<br>

        - <b>Level 3</b>: Level 2 + parsed DF8129, DF8115, and DF8116 tags<br>'
      operationId: run_custom_test
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCustomTestSchema'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestResultSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/verify/test-suite:
    post:
      tags:
      - Validation
      summary: Verify Test Suite
      operationId: verify_test_suite
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestSuiteSchema'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/verify/test:
    post:
      tags:
      - Validation
      summary: Verify Test
      operationId: verify_test
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: true
              type: object
              title: Payload
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/verify/bin:
    post:
      tags:
      - Validation
      summary: Verify Bin Scope
      operationId: verify_bin_scope
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BINScopeSchema'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/verify/capk:
    post:
      tags:
      - Validation
      summary: Verify Capk Scope
      operationId: verify_capk_scope
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CAPKScopeSchema'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/verify/cr:
    post:
      tags:
      - Validation
      summary: Verify Cr Scope
      operationId: verify_cr_scope
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CRScopeSchema'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/verify/emv:
    post:
      tags:
      - Validation
      summary: Verify Emv Scope
      operationId: verify_emv_scope
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EMVScopeSchema'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/parse/log:
    post:
      tags:
      - Parser
      summary: Parse Log
      description: Accepts an uploaded HTML file and returns a test schema and vCard from it.
      operationId: parse_log
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_parse_log_api_parse_log_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TestSchema'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/parse/tag:
    post:
      tags:
      - Parser
      summary: Parse Tag
      description: Parse a specific tag and returns all the information that can be extracted from it.
      operationId: parse_tag
      security:
      - OAuth2PasswordBearer: []
      parameters:
      - name: verbose
        in: query
        required: false
        schema:
          type: boolean
          default: true
          title: Verbose
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_parse_tag_api_parse_tag_post'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/ParsedTag'
                - type: object
                  additionalProperties:
                    anyOf:
                    - type: string
                    - type: integer
                    - type: number
                title: Response Parse Tag Api Parse Tag Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/parse/list-tags:
    post:
      tags:
      - Parser
      summary: List Tags
      description: List all supported tags with their names, description and length.
      operationId: list_tags
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: '#/components/schemas/TagDescription'
                type: object
                title: Response List Tags Api Parse List Tags Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
  /api/parse/tlv:
    post:
      tags:
      - Parser
      summary: Parse Tlv
      description: Parse a TLV string and return a dict of the tag's name and value(s).
      operationId: parse_tlv
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_parse_tlv_api_parse_tlv_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - additionalProperties: true
                  type: object
                - items:
                    additionalProperties: true
                    type: object
                  type: array
                title: Response Parse Tlv Api Parse Tlv Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer: []
components:
  schemas:
    BINConfigSchema:
      properties:
        name:
          type: string
          title: Name
        bin_lists:
          items:
            type: string
          type: array
          title: Bin Lists
      additionalProperties: false
      type: object
      required:
      - name
      - bin_lists
      title: BINConfigSchema
    BINListSchema:
      properties:
        name:
          type: string
          title: Name
        bins:
          items:
            type: string
          type: array
          title: Bins
      additionalProperties: false
      type: object
      required:
      - name
      - bins
      title: BINListSchema
    BINSchema:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
            examples:
            - BIN name
          - type: 'null'
          title: Name
        min_range:
          type: integer
          title: Min Range
          examples:
          - 0
        max_range:
          type: integer
          title: Max Range
          examples:
          - 99999999
      additionalProperties: false
      type: object
      required:
      - min_range
      - max_range
      title: BINSchema
    BINScopeSchema:
      properties:
        bins:
          additionalProperties:
            $ref: '#/components/schemas/BINSchema'
          type: object
          title: Bins
        bin_lists:
          additionalProperties:
            $ref: '#/components/schemas/BINListSchema'
          type: object
          title: Bin Lists
        bin_config:
          $ref: '#/components/schemas/BINConfigSchema'
      additionalProperties: false
      type: object
      required:
      - bins
      - bin_lists
      - bin_config
      title: BINScopeSchema
    BitBlock:
      properties:
        type:
          type: string
          const: bit
          title: Type
        value:
          type: string
          title: Value
        sections:
          items:
            $ref: '#/components/schemas/BitSection'
          type: array
          title: Sections
      type: object
      required:
      - type
      - value
      - sections
      title: BitBlock
    BitSection:
      properties:
        value:
          type: string
          title: Value
        length:
          type: integer
          title: Length
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        meaning:
          anyOf:
          - type: string
          - type: integer
          - type: number
          title: Meaning
        is_true:
          type: boolean
          title: Is True
        combinations:
          anyOf:
          - additionalProperties:
              type: string
            type: object
          - type: 'null'
          title: Combinations
      type: object
      required:
      - value
      - length
      - meaning
      - is_true
      title: BitSection
    Body_parse_log_api_parse_log_post:
      properties:
        file:
          type: string
          contentMediaType: application/octet-stream
          title: File
        type:
          anyOf:
          - $ref: '#/components/schemas/SupportedTypes'
          - type: 'null'
        scheme:
          anyOf:
          - $ref: '#/components/schemas/SupportedSchemes'
          - type: 'null'
      type: object
      required:
      - file
      title: Body_parse_log_api_parse_log_post
    Body_parse_tag_api_parse_tag_post:
      properties:
        tag:
          type: string
          title: Tag
        value:
          type: string
          title: Value
      type: object
      required:
      - tag
      - value
      title: Body_parse_tag_api_parse_tag_post
    Body_parse_tlv_api_parse_tlv_post:
      properties:
        tlv:
          type: string
          title: Tlv
      type: object
      required:
      - tlv
      title: Body_parse_tlv_api_parse_tlv_post
    Body_refresh_token_auth_refresh_token_post:
      properties:
        refresh_token:
          type: string
          title: Refresh Token
          default: ''
          examples:
          - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiZXhwIjowfQ.CzKsmenoSSYvhTq_SGoFvnTB-zO3hwjTu98Qo50kqQg
      type: object
      title: Body_refresh_token_auth_refresh_token_post
    Body_revoke_token_auth_revoke_token_post:
      properties:
        refresh_token:
          type: string
          title: Refresh Token
          default: ''
          examples:
          - eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiZXhwIjowfQ.CzKsmenoSSYvhTq_SGoFvnTB-zO3hwjTu98Qo50kqQg
      type: object
      title: Body_revoke_token_auth_revoke_token_post
    ByteBlock:
      properties:
        type:
          type: string
          const: byte
          title: Type
        value:
          type: string
          title: Value
        length:
          type: integer
          title: Length
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        meaning:
          type: string
          title: Meaning
        number_format:
          anyOf:
          - type: string
            enum:
            - decimal
            - binary
          - type: 'null'
          title: Number Format
        coefficient:
          anyOf:
          - type: number
          - type: 'null'
          title: Coefficient
        unit:
          anyOf:
          - type: string
          - type: 'null'
          title: Unit
        combination:
          anyOf:
          - additionalProperties:
              type: string
            type: object
          - type: 'null'
          title: Combination
      type: object
      required:
      - type
      - value
      - length
      - meaning
      title: ByteBlock
    CAPKAlgorithmType:
      type: string
      enum:
      - RSA
      title: CAPKAlgorithmType
    CAPKHashType:
      type: string
      enum:
      - UNDEFINED
      - SHA1
      - SHA256
      title: CAPKHashType
    CAPKListSchema:
      properties:
        name:
          type: string
          title: Name
        capks:
          items:
            type: string
          type: array
          title: Capks
      additionalProperties: false
      type: object
      required:
      - name
      - capks
      title: CAPKListSchema
    CAPKSchema:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
            examples:
            - CAPK name
          - type: 'null'
          title: Name
        rid:
          type: string
          maxLength: 10
          minLength: 10
          title: Rid
          examples:
          - A000000004
        index:
          type: string
          maxLength: 2
          minLength: 2
          title: Index
          examples:
          - EF
        hash_type:
          $ref: '#/components/schemas/CAPKHashType'
          default: UNDEFINED
        algorithm_type:
          $ref: '#/components/schemas/CAPKAlgorithmType'
          default: RSA
        modulus:
          type: string
          maxLength: 1024
          minLength: 1
          title: Modulus
          examples:
          - A191CB87473F29349B5D60A88B3EAEE0973AA6F1A082F358D849FDDFF9C091F899EDA9792CAF09EF28F5D22404B88A2293EEBBC1949C43BEA4D60CFD879A1539544E09E0F09F60F065B2BF2A13ECC705F3D468B9D33AE77AD9D3F19CA40F23DCF5EB7C04DC8F69EBA565B1EBCB4686CD274785530FF6F6E9EE43AA43FDB02CE00DAEC15C7B8FD6A9B394BABA419D3F6DC85E16569BE8E76989688EFEA2DF22FF7D35C043338DEAA982A02B866DE5328519EBBCD6F03CDD686673847F84DB651AB86C28CF1462562C577B853564A290C8556D818531268D25CC98A4CC6A0BDFFFDA2DCCA3A94C998559E307FDDF915006D9A987B07DDAEB3B
        exponent:
          type: string
          maxLength: 6
          minLength: 2
          title: Exponent
          examples:
          - '03'
        hash:
          type: string
          minLength: 1
          title: Hash
        expires_at:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Expires At
      additionalProperties: false
      type: object
      required:
      - rid
      - index
      - modulus
      - exponent
      - hash
      title: CAPKSchema
    CAPKScopeSchema:
      properties:
        capks:
          additionalProperties:
            $ref: '#/components/schemas/CAPKSchema'
          type: object
          title: Capks
        capk_list:
          $ref: '#/components/schemas/CAPKListSchema'
      additionalProperties: false
      type: object
      required:
      - capks
      - capk_list
      title: CAPKScopeSchema
    CRListSchema:
      properties:
        name:
          type: string
          title: Name
        crs:
          items:
            type: string
          type: array
          title: Crs
      additionalProperties: false
      type: object
      required:
      - name
      - crs
      title: CRListSchema
    CRSchema:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
            examples:
            - CR name
          - type: 'null'
          title: Name
        rid:
          type: string
          maxLength: 10
          minLength: 10
          title: Rid
          examples:
          - A000000004
        index:
          type: string
          maxLength: 2
          minLength: 2
          title: Index
          examples:
          - '00'
        serial_number:
          type: string
          maxLength: 6
          minLength: 6
          title: Serial Number
          examples:
          - 3F70D8
      additionalProperties: false
      type: object
      required:
      - rid
      - index
      - serial_number
      title: CRSchema
    CRScopeSchema:
      properties:
        crs:
          additionalProperties:
            $ref: '#/components/schemas/CRSchema'
          type: object
          title: Crs
        cr_list:
          $ref: '#/components/schemas/CRListSchema'
      additionalProperties: false
      type: object
      required:
      - crs
      - cr_list
      title: CRScopeSchema
    ConfigSchema:
      properties:
        bin_scope:
          anyOf:
          - $ref: '#/components/schemas/BINScopeSchema'
          - type: 'null'
        capk_scope:
          anyOf:
          - $ref: '#/components/schemas/CAPKScopeSchema'
          - type: 'null'
        cr_scope:
          anyOf:
          - $ref: '#/components/schemas/CRScopeSchema'
          - type: 'null'
        emv_scope:
          $ref: '#/components/schemas/EMVScopeSchema'
        poi_config:
          $ref: '#/components/schemas/POIConfigSchema'
      additionalProperties: false
      type: object
      required:
      - emv_scope
      - poi_config
      title: ConfigSchema
    CustomEnvironmentSchema:
      properties:
        tool:
          anyOf:
          - $ref: '#/components/schemas/ToolEnum'
          - type: 'null'
        type:
          anyOf:
          - $ref: '#/components/schemas/TypeEnum'
          - type: 'null'
        scheme:
          $ref: '#/components/schemas/SchemeEnum'
        test_suite_version:
          anyOf:
          - type: string
          - type: 'null'
          title: Test Suite Version
      additionalProperties: false
      type: object
      required:
      - scheme
      title: CustomEnvironmentSchema
    CustomTestSchema:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        version:
          type: string
          title: Version
        date:
          type: string
          format: date
          title: Date
        poi_config:
          $ref: '#/components/schemas/POIConfigSchema'
        payments:
          items:
            $ref: '#/components/schemas/PaymentSchema'
          type: array
          title: Payments
        vcard:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Vcard
        ics:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Ics
        ics_not:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Ics Not
        environment:
          

# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/switstack/refs/heads/main/openapi/switstack-swittest-openapi.yml