{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amadeus/refs/heads/main/json-schema/transfer-book-service-provider-schema.json",
  "title": "ServiceProvider",
  "description": "information about provider",
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "pattern": "[a-zA-Z]{3}",
      "description": "provider code",
      "example": "string-value"
    },
    "name": {
      "type": "string",
      "pattern": "[a-zA-Z]{30}",
      "description": "provider name",
      "example": "Sample Name"
    },
    "logoUrl": {
      "type": "string",
      "description": "URL to provider logo",
      "example": "https://example.com/resource"
    },
    "termsUrl": {
      "type": "string",
      "description": "URL to provider's terms and conditions page",
      "example": "https://example.com/resource"
    },
    "isPreferred": {
      "type": "boolean",
      "description": "indicates if sub-provider is preferred for the travel-seller",
      "example": true
    },
    "contacts": {
      "allOf": [
        {
          "type": "object",
          "properties": {
            "phoneNumber": {
              "type": "string",
              "pattern": "([+]?)[0-9]{1,20}",
              "description": "Contact phone number",
              "example": "+33123456789"
            },
            "email": {
              "type": "string",
              "format": "email",
              "description": "Contact email",
              "example": "traveler@example.com"
            }
          }
        },
        {
          "type": "object",
          "properties": {
            "address": {
              "$ref": "#/definitions/AddressCommon"
            }
          }
        }
      ],
      "description": "Contact and Adress details"
    },
    "settings": {
      "type": "array",
      "description": "list of provider settings",
      "items": {
        "type": "string",
        "description": "provider setting",
        "enum": [
          "BILLING_ADDRESS_REQUIRED",
          "FLIGHT_NUMBER_REQUIRED",
          "CVV_NUMBER_REQUIRED"
        ]
      }
    },
    "businessIdentification": {
      "description": "Information about the Customer stakeholder participating to the described sales summary.",
      "properties": {
        "vatRegistrationNumber": {
          "type": "string",
          "description": "VAT (Value Added Tax) Registration Number of the customer applicable ot the current sales."
        }
      },
      "example": "string-value"
    }
  },
  "required": [
    "code",
    "name",
    "logoUrl"
  ]
}