---
swagger: "2.0"
info:
  description: "The Umbrella Faces API defines a standard how to retrieve and update\
    \ profiles.\n                                    Please note that Umbrella Faces\
    \ has further, proprietary interfaces not described here."
  version: "1.1"
  title: "Umbrella Faces Profile API"
  contact:
    name: "Technical contact"
    email: "api-support@umbrella.ch"
  license:
    name: "Commercial, all rights reserved"
    url: "http://www.umbrella.ch/"
host: "faces.umbrella.ch"
basePath: "/faces"
tags:
- name: "Authorization"
- name: "Configuration management"
- name: "Profile Center"
- name: "Profile management"
- name: "System reference data"
schemes:
- "https"
paths:
  /api/oauth/logout:
    post:
      tags:
      - "Authorization"
      summary: "Logout all server-side sessions of this principal"
      description: ""
      operationId: "logout"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/LogoutRedirectData"
      security:
      - oauth2: []
  /api/oauth/nonce:
    post:
      tags:
      - "Authorization"
      summary: "Get a nonce for seamless transition to server-side pages"
      description: ""
      operationId: "getNonce"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              type: "string"
      security:
      - oauth2: []
  /api/oauth/principal:
    get:
      tags:
      - "Authorization"
      summary: "Get user details for the current principal"
      description: ""
      operationId: "getAuthenticationDetails"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              type: "string"
      security:
      - oauth2: []
  /api/oauth/test:
    get:
      tags:
      - "Authorization"
      summary: "Oauth2 test endpoint"
      description: ""
      operationId: "testOauthIntegration"
      parameters: []
      responses:
        200:
          description: "successful operation"
          schema:
            type: "object"
            additionalProperties:
              type: "object"
      security:
      - oauth2: []
  /api/v1/configuration/setup/agency/standardfieldoptions:
    get:
      tags:
      - "Configuration management"
      summary: "Get list of possible agency standard field customizations"
      description: ""
      operationId: "getStandardFieldOptionsForAgency"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "Update successful"
          schema:
            $ref: "#/definitions/StandardFieldOverrideOption"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/configuration/setup/agency/{uuid}:
    get:
      tags:
      - "Configuration management"
      summary: "Get generic setup by travel agency"
      description: "Will return the setup tailored to the access level of the calling\
        \ user / application"
      operationId: "getGenericAgencySetup"
      parameters:
      - name: "uuid"
        in: "path"
        description: "The travel agency UUID"
        required: true
        type: "string"
      - name: "forEditing"
        in: "query"
        description: "Should we load the whole setup (incl. publish actions / mapping)\
          \ for editing?"
        required: false
        type: "boolean"
        default: false
      - name: "profileType"
        in: "query"
        description: "Should we restrict the response to a specific profile type?\
          \ (Cannot be used along with forEditing=true)"
        required: false
        type: "string"
        enum:
        - "AGENCY"
        - "CORPORATE"
        - "FREQUENTFLYERPROFILE"
        - "STAFF"
        - "TRAVELLER"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/GenericSetupRequestResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
    patch:
      tags:
      - "Configuration management"
      summary: "Update generic setup of travel agency"
      description: ""
      operationId: "updateGenericAgencySetup"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/GenericSetupRequestResponse"
      - name: "uuid"
        in: "path"
        description: "The travel agency UUID"
        required: true
        type: "string"
      responses:
        200:
          description: "Update successful"
          schema:
            $ref: "#/definitions/GenericSetupRequestResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/configuration/setup/agency/{uuid}/upload:
    patch:
      tags:
      - "Configuration management"
      summary: "Update generic setup of travel agency from upload file"
      description: ""
      operationId: "uploadGenericSetup"
      consumes:
      - "multipart/form-data"
      parameters:
      - name: "setupFile"
        in: "formData"
        required: true
        type: "file"
      - name: "uuid"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Update successful"
          schema:
            $ref: "#/definitions/GenericSetupRequestResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/configuration/setup/company/standardfieldoptions:
    get:
      tags:
      - "Configuration management"
      summary: "Get list of possible company standard field customizations"
      description: ""
      operationId: "getStandardFieldOptionsForCompany"
      produces:
      - "application/json"
      parameters: []
      responses:
        200:
          description: "Update successful"
          schema:
            $ref: "#/definitions/StandardFieldOverrideOption"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/configuration/setup/company/{uuid}:
    get:
      tags:
      - "Configuration management"
      summary: "Get generic setup by company"
      description: "Will return the setup tailored to the access level of the calling\
        \ user / application"
      operationId: "getGenericCompanySetup"
      parameters:
      - name: "uuid"
        in: "path"
        description: "The company UUID"
        required: true
        type: "string"
      - name: "forEditing"
        in: "query"
        description: "Should we load the whole setup (incl. publish actions / mapping)\
          \ for editing?"
        required: false
        type: "boolean"
        default: false
      - name: "merged"
        in: "query"
        description: "Should this call return the combined setup of the company along\
          \ with the agency?"
        required: false
        type: "boolean"
        default: false
      - name: "profileType"
        in: "query"
        description: "Should we restrict the response to a specific profile type?\
          \ (Cannot be used along with forEditing=true)"
        required: false
        type: "string"
        enum:
        - "AGENCY"
        - "CORPORATE"
        - "FREQUENTFLYERPROFILE"
        - "STAFF"
        - "TRAVELLER"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/GenericSetupRequestResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
    patch:
      tags:
      - "Configuration management"
      summary: "Update generic setup of a company"
      description: ""
      operationId: "updateGenericCompanySetup"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/GenericSetupRequestResponse"
      - name: "uuid"
        in: "path"
        description: "The travel company UUID"
        required: true
        type: "string"
      responses:
        200:
          description: "Update successful"
          schema:
            $ref: "#/definitions/GenericSetupRequestResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/configuration/setup/company/{uuid}/upload:
    patch:
      tags:
      - "Configuration management"
      summary: "Update generic setup of company from upload file"
      description: ""
      operationId: "uploadCompanyGenericSetup"
      consumes:
      - "multipart/form-data"
      parameters:
      - name: "setupFile"
        in: "formData"
        required: true
        type: "file"
      - name: "uuid"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Update successful"
          schema:
            $ref: "#/definitions/GenericSetupRequestResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/actionable-agencies:
    get:
      tags:
      - "Profile Center"
      summary: "Get available agencies, along with bulk action (publish, read from\
        \ profile,...) interfaces based on current principal"
      description: ""
      operationId: "getBulkActionAgencies"
      parameters: []
      responses:
        200:
          description: "Successfully retrieved agencies"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/ActionableAgencyDetail"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/execution-states:
    get:
      tags:
      - "Profile Center"
      summary: "Get execution states based on current principal"
      description: ""
      operationId: "getExecutionStates"
      parameters: []
      responses:
        200:
          description: "Successfully retrieved execution states"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/ExecutionStatusEntry"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/force-publishing:
    post:
      tags:
      - "Profile Center"
      summary: "Preview / Execute force publishing"
      description: ""
      operationId: "doForcePublishing"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/ForcePublishingRequest"
      responses:
        200:
          description: "Success"
          schema:
            $ref: "#/definitions/ForcePublishingResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/import/{interface}:
    post:
      tags:
      - "Profile Center"
      summary: "Import a single company profile along with its travellers"
      description: ""
      operationId: "doImportCompany"
      parameters:
      - name: "interface"
        in: "path"
        description: "Interface UUID"
        required: true
        type: "string"
      - name: "locator"
        in: "query"
        description: "Company record locator"
        required: true
        type: "string"
      - name: "attribute1"
        in: "query"
        description: "Additional attribute, might be PCC or similar depending on system"
        required: false
        type: "string"
      - name: "attribute2"
        in: "query"
        description: "Additional attribute, might be HAP or similar depending on system"
        required: false
        type: "string"
      responses:
        200:
          description: "Import success"
          schema:
            $ref: "#/definitions/SimpleServiceResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/import/{interface}/companies:
    get:
      tags:
      - "Profile Center"
      summary: "Get available companies to import from system"
      description: ""
      operationId: "listCompaniesForImport"
      parameters:
      - name: "interface"
        in: "path"
        description: "Interface UUID"
        required: true
        type: "string"
      - name: "attribute1"
        in: "query"
        description: "Additional attribute, might be PCC or similar depending on system"
        required: false
        type: "string"
      - name: "attribute2"
        in: "query"
        description: "Additional attribute, might be HAP or similar depending on system"
        required: false
        type: "string"
      responses:
        200:
          description: "Successfully retrieved importable companies"
          schema:
            $ref: "#/definitions/ImportableCompanyResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/mass-{type}-credentials:
    post:
      tags:
      - "Profile Center"
      summary: "Send mass credentials"
      description: ""
      operationId: "sendMassCredentials"
      parameters:
      - name: "type"
        in: "path"
        required: true
        type: "string"
        enum:
        - "passenger"
        - "arranger"
      - name: "company"
        in: "query"
        description: "Company uuid to restrict process on"
        required: true
        type: "string"
      - name: "numberOfProfiles"
        in: "query"
        description: "Number of affected profiles to confirm operation"
        required: false
        type: "integer"
        format: "int32"
      responses:
        200:
          description: "Success"
          schema:
            $ref: "#/definitions/SimpleServiceResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/{profileType}-count:
    get:
      tags:
      - "Profile Center"
      summary: "Count the number of profiles"
      description: ""
      operationId: "getProfileCount"
      parameters:
      - name: "profileType"
        in: "path"
        required: true
        type: "string"
        enum:
        - "traveller"
        - "corporate"
      - name: "agency"
        in: "query"
        description: "Optional agency UUID - defaults to 'all available agencies for\
          \ current principal'"
        required: false
        type: "string"
      responses:
        200:
          description: "Success"
          schema:
            type: "integer"
            format: "int32"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profile-center/{profileType}-publish-errors:
    get:
      tags:
      - "Profile Center"
      summary: "Get publishing errors"
      description: ""
      operationId: "getPublishErrors"
      parameters:
      - name: "profileType"
        in: "path"
        required: true
        type: "string"
        enum:
        - "traveller"
        - "corporate"
      - name: "page"
        in: "query"
        description: "The page to return based on pageSize, starting at 0"
        required: false
        type: "integer"
        default: 0
        format: "int32"
      - name: "pageSize"
        in: "query"
        description: "Number of results to return"
        required: false
        type: "integer"
        default: 25
        format: "int32"
      - name: "since"
        in: "query"
        description: "Optional timestamp to filter on errors that have occurred since\
          \ a specific timestamp"
        required: false
        type: "string"
        format: "yyyy-MM-dd'T'HH:mm[:ss[.SSS]]X"
        x-example: "2023-01-22T23:01:00.000Z"
      responses:
        200:
          description: "Successfully retrieved publishing errors"
          schema:
            $ref: "#/definitions/PublishErrorResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/companies:
    get:
      tags:
      - "Profile management"
      summary: "Search for company profiles"
      description: ""
      operationId: "searchCompanyProfiles"
      parameters:
      - name: "q"
        in: "query"
        description: "Search text"
        required: true
        type: "string"
      - name: "scope"
        in: "query"
        description: "Search scope"
        required: false
        type: "string"
        enum:
        - "DEFAULT"
        - "SHORTNAME"
        - "EXTERNAL_NR"
        - "GENERIC_FIELD"
        - "RECORD_LOCATOR"
        - "PHONE_NUMBER"
        - "UUID"
      - name: "p"
        in: "query"
        description: "Search scope parameter, e.g. system interface type"
        required: false
        type: "string"
      - name: "matchType"
        in: "query"
        description: "Search string match type"
        required: false
        type: "string"
        enum:
        - "EXACT_MATCH"
        - "CASE_INSENSITIVE_MATCH"
        - "PARTIAL_MATCH"
      - name: "pageSize"
        in: "query"
        description: "Number of results to return"
        required: false
        type: "integer"
        default: 10
        format: "int32"
      - name: "page"
        in: "query"
        description: "The page to return based on pageSize, starting at 0"
        required: false
        type: "integer"
        default: 0
        format: "int32"
      - name: "includeDetails"
        in: "query"
        description: "Should detailed information be included for each search result?"
        required: false
        type: "boolean"
        default: false
      - name: "detailSections"
        in: "query"
        description: "If includeDetails is true, which additional profile sections\
          \ should be included?"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "CONTACT_DATA"
          - "MEMBERSHIPS"
          - "GENERIC_FIELD_VALUES"
          - "CREDIT_CARDS"
          - "COMMENT"
          - "PARENT_COMPANY"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "INTERFACE_SETUP"
          - "TRAVELLER_SETTINGS"
          - "GENERAL_SETTINGS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Operation successful"
          schema:
            $ref: "#/definitions/CompanyProfileSearchResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company:
    post:
      tags:
      - "Profile management"
      summary: "Create a new company profile"
      description: ""
      operationId: "createNewCompany"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/CompanyCreateUpdateRequest"
      - name: "returnAddSections"
        in: "query"
        description: "Sections of the profile to return"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "CONTACT_DATA"
          - "MEMBERSHIPS"
          - "GENERIC_FIELD_VALUES"
          - "CREDIT_CARDS"
          - "COMMENT"
          - "PARENT_COMPANY"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "INTERFACE_SETUP"
          - "TRAVELLER_SETTINGS"
          - "GENERAL_SETTINGS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Save successful"
          schema:
            $ref: "#/definitions/CompanyDetailResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/new:
    get:
      tags:
      - "Profile management"
      summary: "Retrieve an empty company object, with some default values already\
        \ set"
      description: ""
      operationId: "getNewCompany"
      parameters:
      - name: "tmpl"
        in: "query"
        description: "Company template UUID"
        required: false
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/CompanyDetailResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{profileUuid}/publishstate/{interfaceUuid}:
    delete:
      tags:
      - "Profile management"
      summary: "Delete existing publish state of a company profile"
      description: ""
      operationId: "deletePublishState"
      parameters:
      - name: "profileUuid"
        in: "path"
        description: "Profile UUID"
        required: true
        type: "string"
      - name: "interfaceUuid"
        in: "path"
        description: "Interface UUID"
        required: true
        type: "string"
      - name: "disconnectTravellers"
        in: "query"
        description: "Disconnect travellers flag"
        required: false
        type: "boolean"
        default: false
      responses:
        204:
          description: "Deletion successful"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}:
    get:
      tags:
      - "Profile management"
      summary: "Retrieve a single company by id"
      description: ""
      operationId: "getCompany"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Company id as returned by the search function"
        required: true
        type: "string"
      - name: "sections"
        in: "query"
        description: "Sections of the profile to return"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "CONTACT_DATA"
          - "MEMBERSHIPS"
          - "GENERIC_FIELD_VALUES"
          - "CREDIT_CARDS"
          - "COMMENT"
          - "PARENT_COMPANY"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "INTERFACE_SETUP"
          - "TRAVELLER_SETTINGS"
          - "GENERAL_SETTINGS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/CompanyDetailResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
    delete:
      tags:
      - "Profile management"
      summary: "Delete existing company profile"
      description: ""
      operationId: "deleteCompany"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Company profile UUID"
        required: true
        type: "string"
      responses:
        204:
          description: "Deletion successful"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
    patch:
      tags:
      - "Profile management"
      summary: "Update existing company profile"
      description: ""
      operationId: "updateExistingCompany"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Company profile UUID"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/CompanyCreateUpdateRequest"
      - name: "returnAddSections"
        in: "query"
        description: "Sections of the profile to return in addition to changed sections"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "CONTACT_DATA"
          - "MEMBERSHIPS"
          - "GENERIC_FIELD_VALUES"
          - "CREDIT_CARDS"
          - "COMMENT"
          - "PARENT_COMPANY"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "INTERFACE_SETUP"
          - "TRAVELLER_SETTINGS"
          - "GENERAL_SETTINGS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Save successful"
          schema:
            $ref: "#/definitions/CompanyDetailResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}/create-selfreg-link:
    patch:
      tags:
      - "Profile management"
      summary: "Generate profile self registration link"
      description: ""
      operationId: "buildSelfRegistrationLink"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Company UUID"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/SelfRegistrationLinkCreateRequest"
      responses:
        200:
          description: "Generation response successfully retrieved"
          schema:
            $ref: "#/definitions/SelfRegistrationLinkData"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}/creditcard/{ccUuid}:
    get:
      tags:
      - "Profile management"
      summary: "Retrieve plaintext credit card details from company"
      description: "May only be accessed through specific PCI-Compliant access URL(s)\
        \ provided to the calling application"
      operationId: "getCompanyCreditCard"
      parameters:
      - name: "uuid"
        in: "path"
        description: "company profile UUID"
        required: true
        type: "string"
      - name: "ccUuid"
        in: "path"
        description: "Specific credit card ID"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/CreditCardDetailResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}/referencedata:
    get:
      tags:
      - "Profile management"
      summary: "Retrieve company reference data to be used to create and/or edit a\
        \ traveller"
      description: ""
      operationId: "getCompanyReferenceData"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Company UUID"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/CompanyReferenceData"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}/subsidiaries:
    get:
      tags:
      - "Profile management"
      summary: "Find subsidiaries of a commpany"
      description: "Will always only return name + uuid, never more details"
      operationId: "getSubsidiaries"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Parent company UUID"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CompanySearchResult"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}/toggle-selfreg:
    post:
      tags:
      - "Profile management"
      summary: "Toggle self registration option for company"
      description: ""
      operationId: "toggleSelfRegistration"
      parameters:
      - name: "uuid"
        in: "path"
        required: true
        type: "string"
      - name: "enable"
        in: "query"
        required: true
        type: "boolean"
      responses:
        204:
          description: "Self registration toggled"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/company/{uuid}/traveller-count:
    get:
      tags:
      - "Profile management"
      summary: "Count the number of profiles for this company"
      description: ""
      operationId: "getCompanyProfileCount"
      produces:
      - "application/json"
      parameters:
      - name: "uuid"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "successful operation"
          schema:
            type: "integer"
            format: "int32"
      security:
      - oauth2: []
  /api/v1/profiles/creditcard/store:
    post:
      tags:
      - "Profile management"
      summary: "Send a new or updated credit card number and retrieve a transaction\
        \ number to be used for company or traveller profile update"
      description: "May only be accessed through specific PCI-Compliant access URL(s)\
        \ provided to the calling application"
      operationId: "storeCreditCardDetails"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/StoreCreditCardRequest"
      responses:
        200:
          description: "successful operation"
          schema:
            $ref: "#/definitions/StoreCreditCardResponse"
        201:
          description: "Successfully stored information for later processing"
          schema:
            $ref: "#/definitions/StoreCreditCardResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/traveller:
    post:
      tags:
      - "Profile management"
      summary: "Create a new traveller profile"
      description: ""
      operationId: "createNewTraveller"
      parameters:
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/TravellerCreateUpdateRequest"
      - name: "returnAddSections"
        in: "query"
        description: "Sections of the profile to return"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "COMPANY_INFO"
          - "COMPANY_CONTACT_DATA"
          - "GENERAL_DATA"
          - "GENERIC_FIELD_VALUES"
          - "PREFERENCES"
          - "MEMBERSHIPS"
          - "PASSPORT"
          - "VISA"
          - "ID_CARD"
          - "EMERGENCY_CONTACT"
          - "ARRANGER_CONTACTS"
          - "APPROVER_CONTACTS"
          - "ROLES"
          - "CREDIT_CARDS"
          - "RAIL_INFORMATION"
          - "RESIDENT_INFORMATION"
          - "TRAVEL_GROUP_ASSIGNMENTS"
          - "COMMENT"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "UNUSED_TICKETS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Save successful"
          schema:
            $ref: "#/definitions/TravellerDetailResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/traveller/{uuid}:
    get:
      tags:
      - "Profile management"
      summary: "Retrieve a single traveller by id"
      description: ""
      operationId: "getTraveller"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Traveller id as returned by the search function"
        required: true
        type: "string"
      - name: "sections"
        in: "query"
        description: "Sections of the profile to return"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "COMPANY_INFO"
          - "COMPANY_CONTACT_DATA"
          - "GENERAL_DATA"
          - "GENERIC_FIELD_VALUES"
          - "PREFERENCES"
          - "MEMBERSHIPS"
          - "PASSPORT"
          - "VISA"
          - "ID_CARD"
          - "EMERGENCY_CONTACT"
          - "ARRANGER_CONTACTS"
          - "APPROVER_CONTACTS"
          - "ROLES"
          - "CREDIT_CARDS"
          - "RAIL_INFORMATION"
          - "RESIDENT_INFORMATION"
          - "TRAVEL_GROUP_ASSIGNMENTS"
          - "COMMENT"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "UNUSED_TICKETS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/TravellerDetailResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
    delete:
      tags:
      - "Profile management"
      summary: "Delete existing traveller profile"
      description: ""
      operationId: "deleteTraveller"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Traveller profile UUID"
        required: true
        type: "string"
      responses:
        204:
          description: "Deletion successful"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
    patch:
      tags:
      - "Profile management"
      summary: "Update existing traveller profile"
      description: ""
      operationId: "updateExistingTraveller"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Traveller profile UUID"
        required: true
        type: "string"
      - in: "body"
        name: "body"
        required: false
        schema:
          $ref: "#/definitions/TravellerCreateUpdateRequest"
      - name: "returnAddSections"
        in: "query"
        description: "Sections of the profile to return in addition to changed sections"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "COMPANY_INFO"
          - "COMPANY_CONTACT_DATA"
          - "GENERAL_DATA"
          - "GENERIC_FIELD_VALUES"
          - "PREFERENCES"
          - "MEMBERSHIPS"
          - "PASSPORT"
          - "VISA"
          - "ID_CARD"
          - "EMERGENCY_CONTACT"
          - "ARRANGER_CONTACTS"
          - "APPROVER_CONTACTS"
          - "ROLES"
          - "CREDIT_CARDS"
          - "RAIL_INFORMATION"
          - "RESIDENT_INFORMATION"
          - "TRAVEL_GROUP_ASSIGNMENTS"
          - "COMMENT"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "UNUSED_TICKETS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Save successful"
          schema:
            $ref: "#/definitions/TravellerDetailResponse"
        400:
          description: "Validation error occurred"
          schema:
            $ref: "#/definitions/ApiValidationErrorResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/traveller/{uuid}/creditcard/{ccUuid}:
    get:
      tags:
      - "Profile management"
      summary: "Retrieve plaintext credit card details from traveler"
      description: "May only be accessed through specific PCI-Compliant access URL(s)\
        \ provided to the calling application"
      operationId: "getTravellerCreditCard"
      parameters:
      - name: "uuid"
        in: "path"
        description: "Traveller profile UUID"
        required: true
        type: "string"
      - name: "ccUuid"
        in: "path"
        description: "Specific credit card ID"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/CreditCardDetailResponse"
        default:
          description: "General Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/profiles/travellers:
    get:
      tags:
      - "Profile management"
      summary: "Search for traveller profiles"
      description: ""
      operationId: "searchTravellerProfiles"
      parameters:
      - name: "q"
        in: "query"
        description: "Search text"
        required: true
        type: "string"
      - name: "c"
        in: "query"
        description: "Search within a specific company"
        required: false
        type: "string"
      - name: "scope"
        in: "query"
        description: "Search scope"
        required: false
        type: "string"
        enum:
        - "DEFAULT"
        - "USERNAME"
        - "EMAIL"
        - "GENERIC_FIELD"
        - "RECORD_LOCATOR"
        - "PAPER"
        - "PHONE_NUMBER"
      - name: "p"
        in: "query"
        description: "Search scope parameter, e.g. generic field name"
        required: false
        type: "string"
      - name: "matchType"
        in: "query"
        description: "Search string match type"
        required: false
        type: "string"
        enum:
        - "EXACT_MATCH"
        - "CASE_INSENSITIVE_MATCH"
        - "PARTIAL_MATCH"
      - name: "pageSize"
        in: "query"
        description: "Number of results to return"
        required: false
        type: "integer"
        default: 10
        format: "int32"
      - name: "page"
        in: "query"
        description: "The page to return based on pageSize, starting at 0"
        required: false
        type: "integer"
        default: 0
        format: "int32"
      - name: "includeDetails"
        in: "query"
        description: "Should detailed information be included for each search result?"
        required: false
        type: "boolean"
        default: false
      - name: "type"
        in: "query"
        description: "Return only profiles of specified type"
        required: false
        type: "string"
        enum:
        - "ARRANGER"
        - "APPROVER"
        - "EMERGENCY"
        - "PASSENGER"
      - name: "detailSections"
        in: "query"
        description: "If includeDetails is true, which additional profile sections\
          \ should be included?"
        required: false
        type: "array"
        items:
          type: "string"
          enum:
          - "AGENCY_INFO"
          - "COMPANY_INFO"
          - "COMPANY_CONTACT_DATA"
          - "GENERAL_DATA"
          - "GENERIC_FIELD_VALUES"
          - "PREFERENCES"
          - "MEMBERSHIPS"
          - "PASSPORT"
          - "VISA"
          - "ID_CARD"
          - "EMERGENCY_CONTACT"
          - "ARRANGER_CONTACTS"
          - "APPROVER_CONTACTS"
          - "ROLES"
          - "CREDIT_CARDS"
          - "RAIL_INFORMATION"
          - "RESIDENT_INFORMATION"
          - "TRAVEL_GROUP_ASSIGNMENTS"
          - "COMMENT"
          - "HISTORY"
          - "PUBLISH_STATES"
          - "UNUSED_TICKETS"
        collectionFormat: "multi"
      responses:
        200:
          description: "Operation successful"
          schema:
            $ref: "#/definitions/TravellerProfileSearchResponse"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
      security:
      - oauth2: []
  /api/v1/reference-data/air-providers:
    get:
      tags:
      - "System reference data"
      summary: "Get frequent flyer options known to the system"
      description: ""
      operationId: "getFrequentFlyerOptions"
      parameters:
      - name: "profileType"
        in: "query"
        required: false
        type: "string"
        enum:
        - "TRAVELLER"
        - "CORPORATE"
      - name: "useAllianceName"
        in: "query"
        required: false
        type: "boolean"
        default: false
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/car-providers:
    get:
      tags:
      - "System reference data"
      summary: "Get rental car providers known to the system"
      description: ""
      operationId: "getRentalCarProviders"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/circle/{circle}/agency-values:
    get:
      tags:
      - "System reference data"
      summary: "Get circle-specific configuration available to current principal"
      description: ""
      operationId: "getCircleSpecificValues"
      parameters:
      - name: "circle"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CircleSpecificFieldDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/circle/{circle}/chains:
    get:
      tags:
      - "System reference data"
      summary: "Get chains supported by the specified circle and principal"
      description: ""
      operationId: "getCircleChains"
      parameters:
      - name: "circle"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              type: "string"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/circles:
    get:
      tags:
      - "System reference data"
      summary: "Get circles available to current principal"
      description: ""
      operationId: "getCircles"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "object"
            additionalProperties:
              type: "string"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/countries:
    get:
      tags:
      - "System reference data"
      summary: "Search countries"
      description: "Search for countries by code or name"
      operationId: "searchCountries"
      parameters:
      - name: "q"
        in: "query"
        required: false
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/Country"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/country/{countrycode}:
    get:
      tags:
      - "System reference data"
      summary: "Get details of a single country by two-letter country code"
      description: ""
      operationId: "getCountry"
      parameters:
      - name: "countrycode"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/Country"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/hotel-chains:
    get:
      tags:
      - "System reference data"
      summary: "Get hotel chains known to the system"
      description: ""
      operationId: "getHotelChains"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/HotelChainCodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/languages:
    get:
      tags:
      - "System reference data"
      summary: "Get languages known to the system"
      description: ""
      operationId: "getLanguages"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "object"
            additionalProperties:
              type: "string"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/publishtargets:
    get:
      tags:
      - "System reference data"
      summary: "Get available publish target types"
      description: ""
      operationId: "getPublishTargets"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/PublishTargetDetail"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/rail-card-types:
    get:
      tags:
      - "System reference data"
      summary: "Get rail card types known to the system"
      description: "Get rail card types known to the system. Depending on the parameters\
        \ either all card types or only the card types supported by the specified\
        \ agency or rail feature are returned"
      operationId: "getRailCardTypes"
      parameters:
      - name: "agency"
        in: "query"
        description: "Optional agency UUID - will return card types available for\
          \ that specific agency"
        required: false
        type: "string"
      - name: "featureRail"
        in: "query"
        description: "Optional rail feature - will return card types available for\
          \ that specific rail feature. Will be ignored if agency parameter has been\
          \ provided too"
        required: false
        type: "string"
        enum:
        - "AMADEUS_GERMANY"
        - "AMADEUS_RAIL"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/RailCardTypeReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/residence-areacodes:
    get:
      tags:
      - "System reference data"
      summary: "Get all available area codes for Spanish residency"
      description: ""
      operationId: "getSpanishResidenceAreaCodes"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/states/{countrycode}:
    get:
      tags:
      - "System reference data"
      summary: "Get a list of states for a given country"
      description: ""
      operationId: "getStates"
      parameters:
      - name: "countrycode"
        in: "path"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/supportaccess:
    get:
      tags:
      - "System reference data"
      summary: "Get available access rights to manage roles"
      description: ""
      operationId: "getSortedAccessRights"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/SupportAccessByFunction"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/systemfeatures:
    get:
      tags:
      - "System reference data"
      summary: "Get available features to toggle on agency level"
      description: ""
      operationId: "getAvailableFeatureToggles"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/FeatureFormConfiguration"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/tokenization-config:
    get:
      tags:
      - "System reference data"
      summary: "Get base URLs for third-party iframe tokenization services"
      description: ""
      operationId: "getTokenizationConfiguration"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            $ref: "#/definitions/TokenizationConfiguration"
        default:
          description: "Unexpected error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/travelgrouproles:
    get:
      tags:
      - "System reference data"
      summary: "Get all available travel group roles"
      description: ""
      operationId: "getTravelGroupRoles"
      parameters: []
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
  /api/v1/reference-data/{travellerUuid}/travelgrouproles:
    get:
      tags:
      - "System reference data"
      summary: "Get all available travel group roles for a given traveller"
      description: ""
      operationId: "getTravelGroupRolesByTraveller"
      parameters:
      - name: "travellerUuid"
        in: "path"
        description: "Traveller UUID"
        required: true
        type: "string"
      responses:
        200:
          description: "Retrieval successful"
          schema:
            type: "array"
            items:
              $ref: "#/definitions/CodedReferenceDefinition"
        default:
          description: "Unexpected Error"
          schema:
            $ref: "#/definitions/GenericApplicationErrorResponse"
securityDefinitions:
  hashedHeaderAuth:
    description: "Request body signed with the provided password using a HmacSHA256\
      \ signature"
    type: "apiKey"
    name: "Authorization"
    in: "header"
  oauth2:
    type: "oauth2"
    tokenUrl: "https://faces.umbrella.ch/faces/oauth/authorize"
    flow: "application"
definitions:
  A Maestro / EC bank card:
    allOf:
    - $ref: "#/definitions/RailIdentificationType"
    - type: "object"
      properties:
        value:
          type: "string"
  ActionableAgencyDetail:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
      bulkInterfaces:
        type: "array"
        items:
          $ref: "#/definitions/AgencyInterfaceDetailWithAttributes"
  AdditionalRailFormOfPaymentReference:
    allOf:
    - $ref: "#/definitions/RailFormOfPaymentReference"
    - type: "object"
      properties:
        additionalFormOfPayment:
          type: "string"
          enum:
          - "UNDEFINED"
          - "INVOICE"
          - "CASH"
          - "LSV"
  AgencyInterfaceDetail:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
      targetSystem:
        type: "string"
        enum:
        - "CSX"
        - "DEEM"
        - "GENERIC_HTTP"
        - "GALILEO_WS"
        - "CYTRIC"
        - "SABRE"
        - "KDS_NEO"
        - "TRAMADA"
        - "FARELOGIX"
        - "CONFERMA"
        - "CONCUR"
        - "EVOLVI"
        - "TRAINLINE"
        - "GETTHERE"
        - "ARGO"
        - "VIBE"
        - "WORLDSPAN"
      dataFlavor:
        type: "integer"
        format: "int32"
      sequence:
        type: "integer"
        format: "int32"
      allowSso:
        type: "boolean"
  AgencyInterfaceDetailWithAttributes:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
      targetSystem:
        type: "string"
        enum:
        - "CSX"
        - "DEEM"
        - "GENERIC_HTTP"
        - "GALILEO_WS"
        - "CYTRIC"
        - "SABRE"
        - "KDS_NEO"
        - "TRAMADA"
        - "FARELOGIX"
        - "CONFERMA"
        - "CONCUR"
        - "EVOLVI"
        - "TRAINLINE"
        - "GETTHERE"
        - "ARGO"
        - "VIBE"
        - "WORLDSPAN"
      dataFlavor:
        type: "integer"
        format: "int32"
      sequence:
        type: "integer"
        format: "int32"
      allowSso:
        type: "boolean"
      attribute1:
        type: "string"
      attribute2:
        type: "string"
  AllianceMembershipInfoWithRequest:
    type: "object"
    properties:
      uuid:
        type: "string"
      alliance:
        type: "string"
      memberNumber:
        type: "string"
      customerRequest:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  ApiValidationErrorResponse:
    type: "object"
    properties:
      message:
        type: "string"
      validationErrors:
        type: "array"
        items:
          $ref: "#/definitions/ValidationError"
  BasicCompanyInformation:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
      shortname:
        type: "string"
      externalNr:
        type: "string"
  CircleSpecificFieldDefinition:
    type: "object"
    properties:
      key:
        type: "string"
      label:
        type: "string"
      options:
        type: "array"
        items:
          $ref: "#/definitions/SelectOption"
      fieldType:
        type: "string"
        enum:
        - "INPUT"
        - "TEXTAREA"
      selection:
        type: "boolean"
  CodedReferenceDefinition:
    type: "object"
    properties:
      code:
        type: "string"
      name:
        type: "string"
  CodedSensitiveReferenceDefinition:
    type: "object"
    properties:
      code:
        type: "string"
        readOnly: true
      name:
        type: "string"
        readOnly: true
      sensitive:
        type: "boolean"
        readOnly: true
  CompanyAddressData:
    type: "object"
    properties:
      street:
        type: "string"
      street2:
        type: "string"
      zipCode:
        type: "string"
      place:
        type: "string"
      countryCode:
        type: "string"
      phone:
        type: "string"
      fax:
        type: "string"
      email:
        type: "string"
      email2:
        type: "string"
      email3:
        type: "string"
  CompanyCardUsageAndReference:
    type: "object"
    properties:
      usage:
        type: "string"
        enum:
        - "CHOOSE"
        - "ALWAYS_USE_COMPANYCARD"
        - "NEVER_USE_COMPANYCARD"
      cardReference:
        $ref: "#/definitions/MaskedCreditCardDetails"
  CompanyContactDataSection:
    type: "object"
    properties:
      street:
        type: "string"
      street2:
        type: "string"
      zipCode:
        type: "string"
      place:
        type: "string"
      state:
        type: "string"
        example: "CA"
        description: "2-Letter code"
      countryCode:
        type: "string"
        example: "CH"
        description: "2-Letter ISO country code"
      phone:
        type: "string"
      fax:
        type: "string"
      email:
        type: "string"
      email2:
        type: "string"
      email3:
        type: "string"
      receiveDocs:
        type: "boolean"
  CompanyCreateUpdateRequest:
    type: "object"
    properties:
      data:
        $ref: "#/definitions/ExtendedCompanyDetailData"
      externalNr:
        type: "string"
      name:
        type: "string"
      shortname:
        type: "string"
  CompanyCreditCardSection:
    type: "object"
    properties:
      creditCards:
        type: "array"
        items:
          $ref: "#/definitions/MaskedCreditCardDetails"
      webCard:
        $ref: "#/definitions/CreditCardReference"
      hotelGuarantee:
        $ref: "#/definitions/CreditCardReference"
      carGuarantee:
        $ref: "#/definitions/CreditCardReference"
      railFormOfPayment:
        description: "Rail from of payment reference - only available if rail feature\
          \ is active in agency configuration"
        $ref: "#/definitions/RailFormOfPaymentReference"
      additionalFormOfPayment:
        type: "string"
        description: "Additional form of payment - may be unavailable on Traveler\
          \ depending on Corporate settings"
        enum:
        - "UNDEFINED"
        - "INVOICE"
        - "CASH"
        - "LSV"
      travellerCardOptions:
        $ref: "#/definitions/TravellerCardOptions"
  CompanyDataSection:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
      shortname:
        type: "string"
      externalNr:
        type: "string"
      street:
        type: "string"
      street2:
        type: "string"
      zipCode:
        type: "string"
      place:
        type: "string"
      countryCode:
        type: "string"
      phone:
        type: "string"
      fax:
        type: "string"
      email:
        type: "string"
      email2:
        type: "string"
      email3:
        type: "string"
  CompanyDetailResponse:
    type: "object"
    properties:
      uuid:
        type: "string"
      externalNr:
        type: "string"
      name:
        type: "string"
      shortname:
        type: "string"
      data:
        $ref: "#/definitions/ExtendedCompanyDetailData"
  CompanyMembershipSection:
    type: "object"
    properties:
      airline:
        type: "array"
        items:
          $ref: "#/definitions/CorporateAirMembership"
      hotel:
        type: "array"
        items:
          $ref: "#/definitions/AllianceMembershipInfoWithRequest"
      rentalCar:
        type: "array"
        items:
          $ref: "#/definitions/CorporateCarMembership"
  CompanyProfileSearchResponse:
    type: "object"
    properties:
      moreResults:
        type: "boolean"
      results:
        type: "array"
        items:
          $ref: "#/definitions/CompanySearchResult"
  CompanyReference:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
      shortname:
        type: "string"
  CompanyReferenceData:
    type: "object"
    properties:
      uuid:
        type: "string"
      travellerFopOption:
        type: "string"
        enum:
        - "FP_AND_GUARANTEE"
        - "GUARANTEE_ONLY"
        - "NONE"
      travellerDefaultArranger:
        type: "boolean"
      travellerDefaultTraveller:
        type: "boolean"
      approverSelectableByTraveller:
        type: "boolean"
      travelgroups:
        type: "array"
        items:
          $ref: "#/definitions/CodedReferenceDefinition"
      defaultTravelGroup:
        type: "string"
      inEuropeanUnion:
        type: "boolean"
      featureResidence:
        type: "boolean"
      companyCountryCode:
        type: "string"
      foodPreferences:
        type: "array"
        items:
          $ref: "#/definitions/CodedSensitiveReferenceDefinition"
      webCard:
        $ref: "#/definitions/CompanyCardUsageAndReference"
      hotelGuarantee:
        $ref: "#/definitions/CompanyCardUsageAndReference"
      carGuarantee:
        $ref: "#/definitions/CompanyCardUsageAndReference"
      pciSecuritySettings:
        $ref: "#/definitions/PciSecuritySettings"
      featureRail:
        type: "string"
        enum:
        - "AMADEUS_GERMANY"
        - "AMADEUS_RAIL"
      titleStructure:
        type: "string"
        enum:
        - "COMMON_AND_FORMAL"
        - "COMPOUND"
      enabledTargetSystems:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
          enum:
          - "CSX"
          - "DEEM"
          - "GENERIC_HTTP"
          - "GALILEO_WS"
          - "CYTRIC"
          - "SABRE"
          - "KDS_NEO"
          - "TRAMADA"
          - "FARELOGIX"
          - "CONFERMA"
          - "CONCUR"
          - "EVOLVI"
          - "TRAINLINE"
          - "GETTHERE"
          - "ARGO"
          - "VIBE"
          - "WORLDSPAN"
      cytricEnabled:
        type: "boolean"
      csxEnabled:
        type: "boolean"
  CompanySearchResult:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
      detailResponse:
        description: "Detailed profile data - only present if requested"
        $ref: "#/definitions/CompanyDetailResponse"
  CorporateAirMembership:
    type: "object"
    properties:
      uuid:
        type: "string"
      alliance:
        type: "string"
      memberNumber:
        type: "string"
      type:
        type: "string"
        enum:
        - "FREETEXT"
        - "SPECIAL_KEYWORD"
        - "LOYALTY_ID"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  CorporateCarMembership:
    type: "object"
    properties:
      uuid:
        type: "string"
      alliance:
        type: "string"
      memberNumber:
        type: "string"
      customerRequest:
        type: "string"
      billingNumber:
        type: "string"
      preferredProvider:
        type: "boolean"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  CorporateInterfaceSetupSection:
    type: "object"
    properties:
      travelGroups:
        type: "array"
        items:
          $ref: "#/definitions/TravelGroupDefinition"
      targetSystems:
        type: "array"
        items:
          $ref: "#/definitions/CorporateInterfaceToggle"
      reportingOfficeId:
        type: "string"
      gwsAgencyLocation:
        type: "string"
      mainTravelGroup:
        type: "string"
  CorporateInterfaceToggle:
    type: "object"
    properties:
      agencyInterface:
        $ref: "#/definitions/AgencyInterfaceDetail"
      attribute1:
        $ref: "#/definitions/SensitiveValue"
      attribute2:
        $ref: "#/definitions/SensitiveValue"
      attribute3:
        $ref: "#/definitions/SensitiveValue"
      attribute4:
        $ref: "#/definitions/SensitiveValue"
      attribute5:
        $ref: "#/definitions/SensitiveValue"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  CorporateTravellerSettingsSection:
    type: "object"
    properties:
      defaultArranger:
        type: "boolean"
      defaultTraveller:
        type: "boolean"
      selfApprovalAllowed:
        type: "boolean"
      approverSelectableByTraveller:
        type: "boolean"
  Country:
    type: "object"
    properties:
      code:
        type: "string"
      name:
        type: "string"
      europeanUnion:
        type: "boolean"
      names:
        type: "array"
        uniqueItems: true
        items:
          $ref: "#/definitions/CountryName"
  CountryName:
    type: "object"
    properties:
      id:
        $ref: "#/definitions/CountryNameId"
      name:
        type: "string"
  CountryNameId:
    type: "object"
    properties:
      locale:
        $ref: "#/definitions/Locale"
  Credit card 'Reference' indicating that no credit card is being referenced:
    allOf:
    - $ref: "#/definitions/CreditCardReference"
    - type: "object"
  CreditCardDetailResponse:
    type: "object"
    properties:
      uuid:
        type: "string"
      type:
        type: "string"
        description: "two-letter type code"
        readOnly: true
        enum:
        - "DC"
        - "AX"
        - "VI"
        - "CA"
        - "TP"
      maskedNumber:
        type: "string"
        readOnly: true
      number:
        type: "string"
      expiration:
        type: "string"
        format: "date-time"
        example: "12/23"
        description: "Expiration date in format MM/yy"
      hasStoredCvv:
        type: "boolean"
        readOnly: true
      updatedNumberReference:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - reference\
          \ to an updated CC number handed off via separate API call"
      remark:
        type: "string"
      publishAsFop:
        type: "boolean"
      sequence:
        type: "integer"
        format: "int32"
        readOnly: true
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  CreditCardReference:
    type: "object"
  Custom defined grooup:
    allOf:
    - $ref: "#/definitions/GroupType"
    - type: "object"
  EmergencyContactSection:
    type: "object"
    properties:
      firstname:
        type: "string"
      lastname:
        type: "string"
      phone:
        type: "string"
      email:
        type: "string"
  EntityByUuidReference:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        readOnly: true
  ExecutionStatusEntry:
    type: "object"
    properties:
      label:
        type: "string"
      message:
        type: "string"
  ExtendedCompanyDetailData:
    type: "object"
    properties:
      contact:
        $ref: "#/definitions/CompanyContactDataSection"
      memberships:
        $ref: "#/definitions/CompanyMembershipSection"
      parentCompany:
        $ref: "#/definitions/ParentCompanySection"
      creditCardInfo:
        $ref: "#/definitions/CompanyCreditCardSection"
      genericFieldValues:
        type: "array"
        items:
          $ref: "#/definitions/GenericCompanyFieldValue"
      interfaceSetup:
        $ref: "#/definitions/CorporateInterfaceSetupSection"
      travellerSettings:
        $ref: "#/definitions/CorporateTravellerSettingsSection"
      generalSettings:
        $ref: "#/definitions/GeneralCompanySettingsSection"
      comment:
        type: "string"
        description: "Profile comment - only available for agency managers"
      history:
        readOnly: true
        $ref: "#/definitions/HistorySection"
      publishStates:
        type: "array"
        readOnly: true
        items:
          $ref: "#/definitions/ProfilePublishState"
      agency:
        description: "Travelagency information, read-only except for new company profile\
          \ creation"
        readOnly: true
        $ref: "#/definitions/EntityByUuidReference"
  ExtendedTravellerDetailData:
    type: "object"
    properties:
      agency:
        readOnly: true
        $ref: "#/definitions/EntityByUuidReference"
      roles:
        $ref: "#/definitions/TravellerRoleSection"
      preferences:
        $ref: "#/definitions/TravellerPreferenceSection"
      genericFieldValues:
        type: "array"
        items:
          $ref: "#/definitions/GenericFieldValue"
      memberships:
        $ref: "#/definitions/TravellerMembershipSection"
      papers:
        $ref: "#/definitions/TravellerPaperSection"
      creditCardInfo:
        $ref: "#/definitions/TravellerCreditCardSection"
      contacts:
        $ref: "#/definitions/TravellerContactSection"
      railInformation:
        $ref: "#/definitions/RailSection"
      spanishResidentInformation:
        $ref: "#/definitions/ResidentInformationSection"
      travelGroups:
        type: "array"
        description: "Travel group assignments - only relevant if Cytric is enabled"
        items:
          $ref: "#/definitions/TravelGroupAllocation"
      comment:
        type: "string"
        description: "Profile comment - only available for agency managers"
      history:
        readOnly: true
        $ref: "#/definitions/HistorySection"
      publishStates:
        type: "array"
        readOnly: true
        items:
          $ref: "#/definitions/ProfilePublishState"
      unusedTickets:
        type: "array"
        readOnly: true
        items:
          $ref: "#/definitions/UnusedTicketData"
      company:
        $ref: "#/definitions/CompanyDataSection"
      generalData:
        $ref: "#/definitions/GeneralTravellerDataSection"
  FeatureFormConfiguration:
    type: "object"
    properties:
      feature:
        type: "string"
        enum:
        - "MAGNATECH"
        - "CONCUR_POLLING"
        - "DEEM_POLLING"
        - "TRAVELLER_DELETE_SELF_SERVICE"
        - "MTRIP_SSO"
        - "YOUBOOK_INTEGRATION"
      featureName:
        type: "string"
      inputs:
        type: "array"
        items:
          $ref: "#/definitions/FeatureInputConfiguration"
  FeatureInputConfiguration:
    type: "object"
    properties:
      inputType:
        type: "string"
      mandatory:
        type: "boolean"
      key:
        type: "string"
      label:
        type: "string"
  FieldMapping:
    type: "object"
    properties:
      uuid:
        type: "string"
      agencyInterface:
        $ref: "#/definitions/EntityByUuidReference"
      mapping:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  FieldValidation:
    type: "object"
  ForcePublishingRequest:
    type: "object"
    properties:
      scope:
        type: "string"
        enum:
        - "AGENCY"
        - "CORPORATE"
        - "FREQUENTFLYERPROFILE"
        - "STAFF"
        - "TRAVELLER"
      type:
        type: "string"
        enum:
        - "ALL_PROFILES"
        - "ERRORS"
      interfaceUuid:
        type: "string"
      companyUuid:
        type: "string"
      preview:
        type: "boolean"
      numberOfProfiles:
        type: "integer"
        format: "int32"
  ForcePublishingResponse:
    type: "object"
    properties:
      success:
        type: "boolean"
      message:
        type: "string"
      profiles:
        type: "integer"
        format: "int32"
      numberProfilesRequired:
        type: "boolean"
  GeneralCompanySettingsSection:
    type: "object"
    properties:
      emailDelivery:
        type: "string"
        enum:
        - "EMAIL"
        - "EMAILPLUS"
      profileRemindersOption:
        type: "string"
        description: "Profile reminders setting - only available if feature is active\
          \ on agency"
        enum:
        - "OFF"
        - "ON"
        - "ON_IGNORE_SEND_CREDENTIALS"
      enableSelfRegistration:
        type: "boolean"
        description: "Self registration setting - only available if feature is active\
          \ on agency"
  GeneralTravellerDataSection:
    type: "object"
    properties:
      greeting:
        $ref: "#/definitions/TravellerGreeting"
      sex:
        type: "string"
        enum:
        - "UNDEF"
        - "FEMALE"
        - "MALE"
        - "NON_BINARY"
      gender:
        type: "string"
      title:
        type: "string"
      language:
        type: "string"
        example: "de_CH"
        description: "Locale code"
      businessPhone:
        type: "string"
      privatePhone:
        type: "string"
      mobilePhone:
        type: "string"
      email:
        type: "string"
      nameSuffix:
        type: "string"
      birthdate:
        type: "string"
        example: "31.12.2020"
        description: "Birthdate in format dd.MM.yyyy"
      nationality:
        type: "string"
        example: "CH"
        description: "2-Letter ISO country code"
      receiveDocs:
        type: "boolean"
      profileExpiration:
        type: "string"
        example: "31.12.2020"
        description: "Profile expiration date in format dd.MM.yyyy"
  GenericActionSetup:
    type: "object"
    properties:
      uuid:
        type: "string"
      agencyInterface:
        $ref: "#/definitions/EntityByUuidReference"
      actionType:
        type: "string"
        enum:
        - "COPY"
        - "FILTER"
      profileType:
        type: "string"
        enum:
        - "UNDEFINED"
        - "TRAVELLER"
        - "CORPORATE"
      source:
        type: "string"
      target:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  GenericApplicationErrorResponse:
    type: "object"
    properties:
      status:
        type: "integer"
        format: "int32"
      code:
        type: "integer"
        format: "int32"
      message:
        type: "string"
      developerMessage:
        type: "string"
      moreInfoUrl:
        type: "string"
  GenericCompanyFieldValue:
    type: "object"
    properties:
      field:
        $ref: "#/definitions/EntityByUuidReference"
      value:
        type: "string"
      elective:
        type: "string"
        description: "Company-Specific to apply to this field, only present if this\
          \ field is setup as elective = COMPANY_SPECIFIC"
        enum:
        - "OPTIONAL"
        - "MANDATORY"
        - "COMPANY_SPECIFIC"
        - "HIDDEN"
  GenericFieldSetup:
    type: "object"
    properties:
      uuid:
        type: "string"
      name:
        type: "string"
        description: "Field Name - can only be set once"
      sequence:
        type: "integer"
        format: "int32"
      fieldOrder:
        type: "integer"
        format: "int32"
      companyBound:
        type: "boolean"
        description: "Identifies fields configured on company level - only sent when\
          \ retrieving combined setup for company / agency"
      internalCode:
        type: "string"
        description: "Field Internal Code - ony available to admins"
      profileType:
        type: "string"
        enum:
        - "UNDEFINED"
        - "TRAVELLER"
        - "CORPORATE"
      editable:
        type: "boolean"
        description: "Field editable flag - only present when viewing"
        readOnly: true
      defaultLabel:
        type: "string"
      labels:
        type: "object"
        additionalProperties:
          type: "string"
      fieldType:
        type: "string"
        enum:
        - "INPUT"
        - "TEXTAREA"
      elective:
        type: "string"
        enum:
        - "OPTIONAL"
        - "MANDATORY"
        - "COMPANY_SPECIFIC"
        - "HIDDEN"
      visibility:
        type: "string"
        description: "Field visibility setting - only present for editing"
        enum:
        - "AGENCY_ONLY"
        - "READ_ONLY"
        - "READ_WRITE"
        - "COMPANY_ONLY"
      dbiType:
        type: "string"
        description: "Field DBI type - only present for editing"
        enum:
        - "COSTCENTER"
        - "COSTCENTER2"
        - "PERSONAL"
        - "PROJECT"
        - "PERMIT"
        - "REQUEST"
        - "BUDGET"
        - "GROUP"
        - "INTERNALREF1"
        - "INTERNALREF2"
        - "INHOUSEINFO"
      validation:
        $ref: "#/definitions/FieldValidation"
      mappings:
        type: "array"
        description: "Field mapping - only present for editing"
        items:
          $ref: "#/definitions/FieldMapping"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  GenericFieldValue:
    type: "object"
    properties:
      field:
        $ref: "#/definitions/EntityByUuidReference"
      value:
        type: "string"
  GenericGroupSetup:
    type: "object"
    properties:
      uuid:
        type: "string"
      groupType:
        $ref: "#/definitions/GroupType"
      sequence:
        type: "integer"
        format: "int32"
      defaultLabel:
        type: "string"
        readOnly: true
      labels:
        type: "object"
        additionalProperties:
          type: "string"
      fields:
        type: "array"
        items:
          $ref: "#/definitions/GenericFieldSetup"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  GenericSetupRequestResponse:
    type: "object"
    properties:
      groups:
        type: "array"
        items:
          $ref: "#/definitions/GenericGroupSetup"
      actions:
        type: "array"
        items:
          $ref: "#/definitions/GenericActionSetup"
      standardFieldDefinitions:
        type: "array"
        items:
          $ref: "#/definitions/StandardFieldDefinitionFormlet"
  GroupType:
    type: "object"
  HistorySection:
    type: "object"
    properties:
      history:
        type: "string"
        description: "Profile history - only available for agency managers"
        readOnly: true
      lastModified:
        type: "string"
        format: "date-time"
        readOnly: true
  HotelChainCodedReferenceDefinition:
    type: "object"
    properties:
      code:
        type: "string"
        readOnly: true
      name:
        type: "string"
        readOnly: true
      compatiblePublishTargets:
        type: "array"
        readOnly: true
        uniqueItems: true
        items:
          type: "string"
          enum:
          - "CSX"
          - "DEEM"
          - "GENERIC_HTTP"
          - "GALILEO_WS"
          - "CYTRIC"
          - "SABRE"
          - "KDS_NEO"
          - "TRAMADA"
          - "FARELOGIX"
          - "CONFERMA"
          - "CONCUR"
          - "EVOLVI"
          - "TRAINLINE"
          - "GETTHERE"
          - "ARGO"
          - "VIBE"
          - "WORLDSPAN"
  IdCard:
    type: "object"
    properties:
      uuid:
        type: "string"
      country:
        type: "string"
        example: "CH"
        description: "2-Letter ISO country code"
      number:
        type: "string"
      issueDate:
        type: "string"
        example: "31.12.2020"
        description: "Date in format dd.MM.yyyy"
      expiration:
        type: "string"
        example: "31.12.2020"
        description: "Date in format dd.MM.yyyy"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  ImportableCompanyResponse:
    type: "object"
    properties:
      profiles:
        type: "array"
        items:
          $ref: "#/definitions/ProfileCompanyStub"
      message:
        type: "string"
  Integrated group - such as 'General':
    allOf:
    - $ref: "#/definitions/GroupType"
    - type: "object"
      properties:
        key:
          type: "string"
  ListValidation:
    allOf:
    - $ref: "#/definitions/FieldValidation"
    - type: "object"
      properties:
        items:
          type: "array"
          items:
            $ref: "#/definitions/ValidationListItem"
  Locale:
    type: "object"
    properties:
      displayName:
        type: "string"
      script:
        type: "string"
      country:
        type: "string"
      variant:
        type: "string"
      extensionKeys:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      unicodeLocaleAttributes:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      unicodeLocaleKeys:
        type: "array"
        uniqueItems: true
        items:
          type: "string"
      iso3Language:
        type: "string"
      iso3Country:
        type: "string"
      displayLanguage:
        type: "string"
      displayScript:
        type: "string"
      displayCountry:
        type: "string"
      displayVariant:
        type: "string"
      language:
        type: "string"
  LogoutRedirectData:
    type: "object"
    properties:
      targetUrl:
        type: "string"
      samlResponse:
        type: "string"
  MaskedCreditCardDetails:
    type: "object"
    properties:
      uuid:
        type: "string"
      type:
        type: "string"
        description: "two-letter type code"
        readOnly: true
        enum:
        - "DC"
        - "AX"
        - "VI"
        - "CA"
        - "TP"
      maskedNumber:
        type: "string"
        readOnly: true
      hasStoredCvv:
        type: "boolean"
        readOnly: true
      updatedNumberReference:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - reference\
          \ to an updated CC number handed off via separate API call"
      expiration:
        type: "string"
        format: "date-time"
        example: "12/23"
        description: "Expiration date in format MM/yy"
      remark:
        type: "string"
      publishAsFop:
        type: "boolean"
      sequence:
        type: "integer"
        format: "int32"
        readOnly: true
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  MaskedTravellerCreditCardDetails:
    type: "object"
    properties:
      uuid:
        type: "string"
      type:
        type: "string"
        description: "two-letter type code"
        readOnly: true
        enum:
        - "DC"
        - "AX"
        - "VI"
        - "CA"
        - "TP"
      maskedNumber:
        type: "string"
        readOnly: true
      hasStoredCvv:
        type: "boolean"
        readOnly: true
      updatedNumberReference:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - reference\
          \ to an updated CC number handed off via separate API call"
      expiration:
        type: "string"
        format: "date-time"
        example: "12/23"
        description: "Expiration date in format MM/yy"
      remark:
        type: "string"
      publishAsFop:
        type: "boolean"
      sequence:
        type: "integer"
        format: "int32"
        readOnly: true
      nameOnCard:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  No rail identification has been provided:
    allOf:
    - $ref: "#/definitions/RailIdentificationType"
    - type: "object"
  NoValidation:
    allOf:
    - $ref: "#/definitions/FieldValidation"
    - type: "object"
  ParentCompanySection:
    type: "object"
    properties:
      company:
        $ref: "#/definitions/CompanyReference"
      adminShareOption:
        type: "string"
        enum:
        - "NONE"
        - "ARRANGER"
        - "APPROVER"
        - "ALL"
  Passport:
    type: "object"
    properties:
      uuid:
        type: "string"
      country:
        type: "string"
        example: "CH"
        description: "2-Letter ISO country code"
      number:
        type: "string"
      issueDate:
        type: "string"
        example: "31.12.2020"
        description: "Date in format dd.MM.yyyy"
      expiration:
        type: "string"
        example: "31.12.2020"
        description: "Date in format dd.MM.yyyy"
      issueCountry:
        type: "string"
      issuePlace:
        type: "string"
      primary:
        type: "boolean"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  PciSecuritySettings:
    type: "object"
    properties:
      complianceLevel:
        type: "string"
        enum:
        - "NONE"
        - "DATATRANS"
        - "DATATRANS_WITH_CVC"
        - "MIDOCO"
        - "MIDOCO_WITH_CVC"
      merchantId:
        type: "string"
  Personal credit card - as indicated by the referenced UUID:
    allOf:
    - $ref: "#/definitions/RailIdentificationType"
    - type: "object"
      properties:
        uuid:
          type: "string"
  ProfileCompanyStub:
    type: "object"
    properties:
      name:
        type: "string"
      locator:
        type: "string"
  ProfilePublishState:
    type: "object"
    properties:
      label:
        type: "string"
      agencyInterface:
        $ref: "#/definitions/AgencyInterfaceDetail"
      lastPublished:
        type: "string"
        format: "date-time"
      recordLocator:
        type: "string"
      lastPublishState:
        type: "string"
      faultIndicator:
        type: "string"
        enum:
        - "OK"
        - "QUEUED"
        - "INTENTIONALLY_NOT_PUBLISHED"
        - "TIMESTAMP_ISSUE"
        - "GENERAL_ERROR"
      readFromProfilePending:
        type: "boolean"
      locatorEdited:
        type: "boolean"
  PublishErrorItem:
    type: "object"
    properties:
      agencyInterface:
        $ref: "#/definitions/EntityByUuidReference"
      company:
        $ref: "#/definitions/EntityByUuidReference"
      traveller:
        description: "Traveller reference, only present if this is a traveller error\
          \ item"
        $ref: "#/definitions/EntityByUuidReference"
      publishState:
        type: "string"
      lastPublished:
        type: "string"
        format: "date-time"
  PublishErrorResponse:
    type: "object"
    properties:
      moreResults:
        type: "boolean"
      results:
        type: "array"
        items:
          $ref: "#/definitions/PublishErrorItem"
  PublishTargetDetail:
    type: "object"
    properties:
      publishTarget:
        type: "string"
        enum:
        - "CSX"
        - "DEEM"
        - "GENERIC_HTTP"
        - "GALILEO_WS"
        - "CYTRIC"
        - "SABRE"
        - "KDS_NEO"
        - "TRAMADA"
        - "FARELOGIX"
        - "CONFERMA"
        - "CONCUR"
        - "EVOLVI"
        - "TRAINLINE"
        - "GETTHERE"
        - "ARGO"
        - "VIBE"
        - "WORLDSPAN"
      applicationName:
        type: "string"
      publishSetupLevel:
        type: "string"
        enum:
        - "NONE"
        - "FIELD_MAPPING"
        - "PUBLISH_ACTIONS"
        - "EVOLVI"
      dataFormat:
        type: "string"
        enum:
        - "JSON"
        - "XML"
  RailCardTypeReferenceDefinition:
    type: "object"
    properties:
      code:
        type: "string"
      name:
        type: "string"
      discountCard:
        type: "boolean"
      loyaltyCard:
        type: "boolean"
  RailFormOfPaymentReference:
    type: "object"
  RailIdentificationType:
    type: "object"
  RailMembership:
    type: "object"
    properties:
      uuid:
        type: "string"
      type:
        type: "string"
      number:
        type: "string"
      expiration:
        type: "string"
        example: "31.12.2020"
        description: "Expiration date in format dd.MM.yyyy"
      collectBonusPoints:
        type: "boolean"
      validFromStation:
        type: "string"
      validToStation:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
      class:
        type: "string"
        enum:
        - "UNDEFINED"
        - "FIRST"
        - "SECOND"
  RailSection:
    type: "object"
    properties:
      preferredClass:
        type: "string"
        enum:
        - "UNDEFINED"
        - "FIRST"
        - "SECOND"
      preferredSeat:
        type: "string"
        description: "Code for A(isle) or W(indow). Empty string for 'no preference'"
        enum:
        - "A"
        - "W"
        - "''"
      ticketDelivery:
        type: "string"
        enum:
        - "UNDEFINED"
        - "PAPERTICKET"
        - "BAHNTIX"
        - "ONLINE"
      wagonType:
        type: "string"
        enum:
        - "UNDEFINED"
        - "PREFER_WIDEBODY"
        - "REQUIRE_WIDEBODY"
        - "COMPARTMENT"
        - "TABLE"
        - "SINGLE"
      wagonExtraType:
        type: "string"
        enum:
        - "UNDEFINED"
        - "PHONEAREA"
        - "QUIETAREA"
      identificationType:
        description: "Means of rail identification - only available for AMADEUS_GERMANY\
          \ rail feature"
        $ref: "#/definitions/RailIdentificationType"
      railCards:
        type: "array"
        items:
          $ref: "#/definitions/RailMembership"
  Reference to a credit card situated within the same profile:
    allOf:
    - $ref: "#/definitions/CreditCardReference"
    - type: "object"
      properties:
        uuid:
          type: "string"
        maskedNumber:
          type: "string"
          readOnly: true
  ? 'Reference to the company credit card. Only available on traveller profiles.Note:
    This is merely a reference to whichever (single) card the company has set as web
    / hotel / car guarantee - not a specific CC out of a bigger set of available cards'
  : allOf:
    - $ref: "#/definitions/CreditCardReference"
    - type: "object"
      properties:
        uuid:
          type: "string"
        maskedNumber:
          type: "string"
          readOnly: true
  ReferencedTravellerContact:
    type: "object"
    properties:
      uuid:
        type: "string"
      displayText:
        type: "string"
        readOnly: true
      contactUuid:
        type: "string"
      primary:
        type: "boolean"
      receiveDocs:
        type: "boolean"
      email:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
    description: "Reference to a contact - please note the difference between the\
      \ (collection element) uuid and contactUuid"
  RegexValidation:
    allOf:
    - $ref: "#/definitions/FieldValidation"
    - type: "object"
      properties:
        expression:
          type: "string"
  ResidentInformationSection:
    type: "object"
    properties:
      area:
        type: "string"
        enum:
        - "UNDEFINED"
        - "CANARY"
        - "BALEARIC"
        - "MELILLA"
        - "ANDALUSIA"
      areaCode:
        type: "string"
      cardType:
        type: "string"
        enum:
        - "UNDEFINED"
        - "NATIONAL_ID"
        - "RESIDENT_CARD"
        - "MINOR_RESIDENT"
        - "TEMP_RESIDENT"
      cardNumber:
        type: "string"
      firstname:
        type: "string"
      firstSurname:
        type: "string"
      secondSurname:
        type: "string"
  SelectOption:
    type: "object"
    properties:
      key:
        type: "object"
      label:
        type: "string"
  SelfRegistrationLinkCreateRequest:
    type: "object"
    properties:
      expire:
        type: "string"
        format: "date-time"
      subsidiaries:
        type: "boolean"
      mailDomains:
        type: "array"
        items:
          type: "string"
      profileDeleteDate:
        type: "string"
        format: "date-time"
  SelfRegistrationLinkData:
    type: "object"
    properties:
      link:
        type: "string"
      message:
        type: "string"
  SensitiveValue:
    type: "object"
    properties:
      sensitiveValuePresent:
        type: "boolean"
        readOnly: true
      value:
        type: "string"
  SimpleServiceResponse:
    type: "object"
    properties:
      success:
        type: "boolean"
      message:
        type: "string"
  StandardFieldDefinitionFormlet:
    type: "object"
    properties:
      uuid:
        type: "string"
      collectionName:
        type: "string"
      fieldName:
        type: "string"
      profileType:
        type: "string"
        enum:
        - "CORPORATE"
        - "TRAVELLER"
      affectedUserGroup:
        type: "string"
        enum:
        - "ENTIRE_AGENCY"
        - "COMPANY_ADMIN_AND_TRAVELLER"
        - "COMPANY_ADMIN_ONLY"
        - "TRAVELLER"
      fieldDisplayType:
        type: "string"
        enum:
        - "OPTIONAL"
        - "MANDATORY"
        - "HIDDEN"
        - "READ_ONLY"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  StandardFieldOverrideOption:
    type: "object"
    properties:
      profileType:
        type: "string"
        enum:
        - "AGENCY"
        - "CORPORATE"
        - "FREQUENTFLYERPROFILE"
        - "STAFF"
        - "TRAVELLER"
      collectionName:
        type: "string"
      fieldName:
        type: "string"
      label:
        type: "string"
      compoundValue:
        type: "string"
  StoreCreditCardRequest:
    type: "object"
    properties:
      type:
        type: "string"
        description: "two-letter type code"
        enum:
        - "DC"
        - "AX"
        - "VI"
        - "CA"
        - "TP"
      number:
        type: "string"
  StoreCreditCardResponse:
    type: "object"
    properties:
      transactionId:
        type: "string"
      validUntil:
        type: "string"
        format: "date-time"
  SupportAccessByFunction:
    type: "object"
    properties:
      minimumFunction:
        type: "string"
        enum:
        - "CIRCLE_ADMIN"
        - "AGENCY_ADMIN"
        - "COMPANY_ADMIN"
      accessItems:
        type: "array"
        items:
          $ref: "#/definitions/SupportAccessItem"
  SupportAccessItem:
    type: "object"
    properties:
      name:
        type: "string"
      label:
        type: "string"
      group:
        type: "string"
        enum:
        - "AGENCY"
        - "ROLE"
        - "COMPANY"
        - "TRAVELLER"
        - "MASS_OPERATIONS"
        - "SPECIAL"
      functionSpecific:
        type: "boolean"
      inheritAccess:
        type: "string"
        enum:
        - "ACCESS_DELETE_AGENCY"
        - "ACCESS_EDIT_AGENCY"
        - "ACCESS_CREATE_AGENCY"
        - "ACCESS_SHOW_RAW_REQUESTS"
        - "ACCESS_EDIT_ROLE"
        - "ACCESS_CREATE_ROLE"
        - "ACCESS_DELETE_ROLE"
        - "ACCESS_MASS_PUBLISHING"
        - "ACCESS_MASS_CREDENTIALS"
        - "ACCESS_EDIT_COMPANY"
        - "ACCESS_CREATE_COMPANY"
        - "ACCESS_DELETE_COMPANY"
        - "ACCESS_EDIT_COMPANY_SETUP"
        - "ACCESS_EDIT_COMPANY_INTERFACE_SETUP"
        - "ACCESS_DISCONNECT_COMPANY_INTERFACE"
        - "ACCESS_DISCONNECT_SINGLE_PROFILE"
        - "ACCESS_EDIT_COMPANY_TRAVELLER_SETTINGS"
        - "ACCESS_EDIT_COMPANY_SELFREG"
        - "ACCESS_EDIT_COMPANY_CREDITCARD"
        - "ACCESS_EDIT_TRAVELLER"
        - "ACCESS_CREATE_TRAVELLER"
        - "ACCESS_DELETE_TRAVELLER"
        - "ACCESS_EDIT_PROFILE_EXPIRATION"
        - "ACCESS_EDIT_PROFILE_LOCATOR"
        - "ACCESS_EDIT_SUBORDINATE_TRAVELLER"
        - "ACCESS_CREATE_SUBORDINATE_TRAVELLER"
        - "ACCESS_DELETE_SUBORDINATE_TRAVELLER"
        - "ACCESS_MASS_UPDATE"
        - "ACCESS_PLAINTEXT_CC"
        - "ACCESS_ALL_READONLY"
  The traveller's (single) rail card:
    allOf:
    - $ref: "#/definitions/RailIdentificationType"
    - type: "object"
  TokenizationConfiguration:
    type: "object"
    properties:
      libraries:
        type: "object"
        additionalProperties:
          type: "string"
  TravelGroupAllocation:
    type: "object"
    properties:
      uuid:
        type: "string"
      groupId:
        type: "string"
      role:
        type: "string"
        enum:
        - "CUSTOM_ADMINISTRATOR"
        - "PROFILE_MANAGER"
        - "PRINCIPAL_TRAVEL_ARRANGER"
        - "TRAVEL_ARRANGER"
        - "TRAVEL_APPROVER"
        - "TRAVELER"
        - "USER"
        - "APPOINTEDTRAVEL_ARRANGER"
        - "TRAVEL_ARRANGER_RESTRICTED_PM"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  TravelGroupDefinition:
    type: "object"
    properties:
      name:
        type: "string"
      id:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  TravellerAirMembership:
    type: "object"
    properties:
      uuid:
        type: "string"
      alliance:
        type: "string"
      memberNumber:
        type: "string"
      pin:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  TravellerCarMembership:
    type: "object"
    properties:
      uuid:
        type: "string"
      alliance:
        type: "string"
      memberNumber:
        type: "string"
      customerRequest:
        type: "string"
      specialRequest:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
  TravellerCardOptions:
    type: "object"
    properties:
      fopOption:
        type: "string"
        enum:
        - "FP_AND_GUARANTEE"
        - "GUARANTEE_ONLY"
        - "NONE"
      hotelGuaranteeUsage:
        type: "string"
        enum:
        - "CHOOSE"
        - "ALWAYS_USE_COMPANYCARD"
        - "NEVER_USE_COMPANYCARD"
      carGuaranteeUsage:
        type: "string"
        enum:
        - "CHOOSE"
        - "ALWAYS_USE_COMPANYCARD"
        - "NEVER_USE_COMPANYCARD"
      webPaymentUsage:
        type: "string"
        enum:
        - "CHOOSE"
        - "ALWAYS_USE_COMPANYCARD"
        - "NEVER_USE_COMPANYCARD"
  TravellerContactSection:
    type: "object"
    properties:
      emergencyContact:
        $ref: "#/definitions/EmergencyContactSection"
      arrangers:
        type: "array"
        items:
          $ref: "#/definitions/ReferencedTravellerContact"
      approvers:
        type: "array"
        items:
          $ref: "#/definitions/ReferencedTravellerContact"
  TravellerCreateUpdateRequest:
    type: "object"
    properties:
      data:
        $ref: "#/definitions/ExtendedTravellerDetailData"
      username:
        type: "string"
      firstname:
        type: "string"
      middlename:
        type: "string"
      name:
        type: "string"
      email:
        type: "string"
  TravellerCreditCardSection:
    type: "object"
    properties:
      creditCards:
        type: "array"
        items:
          $ref: "#/definitions/MaskedTravellerCreditCardDetails"
      webCard:
        $ref: "#/definitions/CreditCardReference"
      hotelGuarantee:
        $ref: "#/definitions/CreditCardReference"
      carGuarantee:
        $ref: "#/definitions/CreditCardReference"
      railFormOfPayment:
        description: "Rail from of payment reference - only available if rail feature\
          \ is active in agency configuration"
        $ref: "#/definitions/RailFormOfPaymentReference"
      additionalFormOfPayment:
        type: "string"
        description: "Additional form of payment - may be unavailable on Traveler\
          \ depending on Corporate settings"
        enum:
        - "UNDEFINED"
        - "INVOICE"
        - "CASH"
        - "LSV"
  TravellerDetailResponse:
    type: "object"
    properties:
      uuid:
        type: "string"
      username:
        type: "string"
      firstname:
        type: "string"
      middlename:
        type: "string"
      name:
        type: "string"
      email:
        type: "string"
      data:
        $ref: "#/definitions/ExtendedTravellerDetailData"
  TravellerGreeting:
    type: "object"
    properties:
      commonTitle:
        type: "string"
        example: "MR"
        enum:
        - "UNDEFINED"
        - "MR"
        - "MRS"
        - "MS"
        - "MISS"
      formalTitle:
        type: "string"
        example: "PROF"
        description: "Formal title of profile"
      compoundTitle:
        type: "string"
        example: "MR PROF"
        description: "Combine both common and formal title"
  TravellerMembershipSection:
    type: "object"
    properties:
      flight:
        type: "array"
        items:
          $ref: "#/definitions/TravellerAirMembership"
      hotel:
        type: "array"
        items:
          $ref: "#/definitions/AllianceMembershipInfoWithRequest"
      rentalCar:
        type: "array"
        items:
          $ref: "#/definitions/TravellerCarMembership"
  TravellerPaperSection:
    type: "object"
    properties:
      passports:
        type: "array"
        items:
          $ref: "#/definitions/Passport"
      visas:
        type: "array"
        items:
          $ref: "#/definitions/Visa"
      idCards:
        type: "array"
        items:
          $ref: "#/definitions/IdCard"
  TravellerPreferenceSection:
    type: "object"
    properties:
      preferredSeat:
        type: "string"
        description: "Code for A(isle) or W(indow). Empty string for 'no preference'"
        enum:
        - "A"
        - "W"
        - "''"
      preferredFood:
        type: "string"
        description: "4-Letter code or Empty string for 'no preference'"
      smoker:
        type: "boolean"
  TravellerProfileSearchResponse:
    type: "object"
    properties:
      moreResults:
        type: "boolean"
      results:
        type: "array"
        items:
          $ref: "#/definitions/TravellerSearchResult"
  TravellerRoleSection:
    type: "object"
    properties:
      traveller:
        type: "boolean"
      arranger:
        type: "boolean"
      approver:
        type: "boolean"
    description: "Traveller role information as present in Faces"
  TravellerSearchResult:
    type: "object"
    properties:
      uuid:
        type: "string"
      fullName:
        type: "string"
      detailResponse:
        description: "Detailed profile data - only present if requested"
        $ref: "#/definitions/TravellerDetailResponse"
  UnusedTicketData:
    type: "object"
    properties:
      carrier:
        type: "string"
      expiryDate:
        type: "string"
        format: "date-time"
      fare:
        type: "number"
        format: "double"
      pnr:
        type: "string"
      ticketNumber:
        type: "string"
  ValidationError:
    type: "object"
    properties:
      key:
        type: "string"
      message:
        type: "string"
  ValidationListItem:
    type: "object"
    properties:
      optLabel:
        type: "string"
      optValue:
        type: "string"
  Visa:
    type: "object"
    properties:
      uuid:
        type: "string"
      country:
        type: "string"
        example: "CH"
        description: "2-Letter ISO country code"
      number:
        type: "string"
      issueDate:
        type: "string"
        example: "31.12.2020"
        description: "Date in format dd.MM.yyyy"
      expiration:
        type: "string"
        example: "31.12.2020"
        description: "Date in format dd.MM.yyyy"
      entryType:
        type: "string"
      linkedPassport:
        type: "string"
      _operation:
        type: "string"
        description: "Only relevant for UPDATE calls sent towards Faces - operation\
          \ to perform on collection element."
        enum:
        - "save-update"
        - "remove"
