{
  "x-generator": "NSwag v13.20.0.0 (NJsonSchema v10.9.0.0 (Newtonsoft.Json v13.0.0.0))",
  "swagger": "2.0",
  "info": {
    "title": "My Title",
    "version": "1.0.0"
  },
  "host": "localhost",
  "schemes": [
    "http"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/api/v1/traveler": {
      "post": {
        "tags": [
          "Traveler"
        ],
        "operationId": "Traveler_TravelerPost",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CreateTraveler"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/v1/traveler/{externalIdentifier}": {
      "get": {
        "tags": [
          "Traveler"
        ],
        "operationId": "Traveler_TravelerGet",
        "parameters": [
          {
            "type": "string",
            "name": "externalIdentifier",
            "in": "path",
            "required": true,
            "format": "guid",
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Traveler"
        ],
        "operationId": "Traveler_TravelerPatch",
        "parameters": [
          {
            "type": "string",
            "name": "externalIdentifier",
            "in": "path",
            "required": true,
            "format": "guid",
            "x-nullable": false
          },
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/UpdateTraveler"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/v1/travel-request/{externalIdentifier}": {
      "get": {
        "tags": [
          "TravelRequest"
        ],
        "operationId": "TravelRequest_TravelRequestGet",
        "parameters": [
          {
            "type": "string",
            "name": "externalIdentifier",
            "in": "path",
            "required": true,
            "format": "guid",
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      },
      "patch": {
        "tags": [
          "TravelRequest"
        ],
        "operationId": "TravelRequest_TravelRequestPatch",
        "parameters": [
          {
            "type": "string",
            "name": "externalIdentifier",
            "in": "path",
            "required": true,
            "format": "guid",
            "x-nullable": false
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateTravelRequestBody"
            },
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/v1/travel-request": {
      "post": {
        "tags": [
          "TravelRequest"
        ],
        "operationId": "TravelRequest_TravelRequestPost",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CreateTravelRequest"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/v1/posted-worker-filing/{externalIdentifier}": {
      "delete": {
        "tags": [
          "PostedWorkerFiling"
        ],
        "operationId": "PostedWorkerFiling_PostedWorkerFilingDelete",
        "parameters": [
          {
            "type": "string",
            "name": "externalIdentifier",
            "in": "path",
            "required": true,
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/v1/posted-worker-filing": {
      "post": {
        "tags": [
          "PostedWorkerFiling"
        ],
        "operationId": "PostedWorkerFiling_PostedWorkerFilingPost",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CreatePostedWorkerFiling"
            },
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/v1/HealthCheck": {
      "post": {
        "tags": [
          "ApiHealthCheck"
        ],
        "operationId": "ApiHealthCheck_HealthCheck",
        "parameters": [
          {
            "name": "requestModel",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/HealthCheckRequestModel"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/EquusTrust/Verify": {
      "post": {
        "tags": [
          "EquusTrust"
        ],
        "operationId": "EquusTrust_Verify",
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    },
    "/api/EquusTrust/Connect": {
      "post": {
        "tags": [
          "EquusTrust"
        ],
        "operationId": "EquusTrust_Connect",
        "parameters": [
          {
            "name": "request",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/EquusKeyExchangeRequest"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "x-nullable": true,
            "description": "",
            "schema": {
              "type": "file"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "CreateTraveler": {
      "allOf": [
        {
          "$ref": "#/definitions/Traveler"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "taxResidency",
            "certificatesOfCoverage"
          ],
          "properties": {
            "taxResidency": {
              "$ref": "#/definitions/TaxResidency"
            },
            "certificatesOfCoverage": {
              "$ref": "#/definitions/CertificatesOfCoverage2"
            }
          }
        }
      ]
    },
    "TaxResidency": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "country",
        "state",
        "city"
      ],
      "properties": {
        "country": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "state": {
          "type": "string",
          "maxLength": 6,
          "minLength": 4,
          "pattern": "[a-zA-Z]{2}-[a-zA-Z0-9]{1,3}"
        },
        "city": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        }
      }
    },
    "CertificatesOfCoverage2": {
      "allOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CertificateOfCoverage"
          }
        },
        {
          "type": "object",
          "additionalProperties": {},
          "properties": {
            "AdditionalProperties": {
              "type": "object",
              "additionalProperties": {}
            }
          }
        }
      ]
    },
    "CertificateOfCoverage": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "destinationCountry",
        "externalIdentifier",
        "expirationDate",
        "issuingCountry",
        "coverageStartDate",
        "applicationDate",
        "providedToPayroll"
      ],
      "properties": {
        "destinationCountry": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "externalIdentifier": {
          "type": "string",
          "format": "guid"
        },
        "expirationDate": {
          "type": "string",
          "format": "date-time"
        },
        "issuingCountry": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "coverageStartDate": {
          "type": "string",
          "format": "date-time"
        },
        "applicationDate": {
          "type": "string",
          "format": "date-time"
        },
        "providedToPayroll": {
          "type": "boolean"
        }
      }
    },
    "Traveler": {
      "allOf": [
        {
          "$ref": "#/definitions/TravelerBase"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "daysOff",
            "externalIdentifier",
            "permanentEstablishmentQuestion",
            "taxResidency",
            "certificatesOfCoverage"
          ],
          "properties": {
            "daysOff": {
              "$ref": "#/definitions/DaysOff"
            },
            "externalIdentifier": {},
            "permanentEstablishmentQuestion": {
              "$ref": "#/definitions/PermanentEstablishmentQuestion"
            },
            "taxResidency": {
              "$ref": "#/definitions/TaxResidency"
            },
            "certificatesOfCoverage": {
              "$ref": "#/definitions/CertificatesOfCoverage"
            }
          }
        }
      ]
    },
    "DaysOff": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/DayOfWeek"
      }
    },
    "DayOfWeek": {
      "type": "integer",
      "description": "",
      "x-enumNames": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
        "Sunday"
      ],
      "enum": [
        0,
        1,
        2,
        3,
        4,
        5,
        6
      ]
    },
    "PermanentEstablishmentQuestion": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "hasAuthorityToSignContracts",
        "hasExecutiveManagementRole",
        "isRegularlySigningContracts"
      ],
      "properties": {
        "hasAuthorityToSignContracts": {
          "$ref": "#/definitions/PermanentEstablishmentAnswers"
        },
        "hasExecutiveManagementRole": {
          "$ref": "#/definitions/PermanentEstablishmentAnswers"
        },
        "isRegularlySigningContracts": {
          "$ref": "#/definitions/PermanentEstablishmentAnswers"
        }
      }
    },
    "PermanentEstablishmentAnswers": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "No_Answer",
        "Yes",
        "No"
      ],
      "enum": [
        "No Answer",
        "Yes",
        "No"
      ]
    },
    "CertificatesOfCoverage": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/CertificateOfCoverage"
      }
    },
    "TravelerBase": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "externalIdentifier"
      ],
      "properties": {
        "externalIdentifier": {
          "type": "string",
          "format": "guid"
        }
      }
    },
    "UpdateTraveler": {
      "allOf": [
        {
          "$ref": "#/definitions/Traveler"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "certificatesOfCoverage"
          ],
          "properties": {
            "certificatesOfCoverage": {
              "$ref": "#/definitions/CertificatesOfCoverage3"
            }
          }
        }
      ]
    },
    "CertificatesOfCoverage3": {
      "allOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CertificateOfCoverage"
          }
        },
        {
          "type": "object",
          "additionalProperties": {},
          "properties": {
            "AdditionalProperties": {
              "type": "object",
              "additionalProperties": {}
            }
          }
        }
      ]
    },
    "UpdateTravelRequestBody": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "cancellationReason",
        "status"
      ],
      "properties": {
        "cancellationReason": {
          "$ref": "#/definitions/TravelRequestCancellationReason"
        },
        "status": {
          "$ref": "#/definitions/TravelRequestStatus"
        }
      }
    },
    "TravelRequestCancellationReason": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Duplicate",
        "Project_Cancelled",
        "Rescheduled",
        "Other"
      ],
      "enum": [
        "Duplicate",
        "Project Cancelled",
        "Rescheduled",
        "Other"
      ]
    },
    "TravelRequestStatus": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Not_Submitted",
        "Submitted",
        "Cancelled",
        "Finished",
        "Pending_Approval",
        "Approved",
        "Denied",
        "Pending_Risk_Review"
      ],
      "enum": [
        "Not Submitted",
        "Submitted",
        "Cancelled",
        "Finished",
        "Pending Approval",
        "Approved",
        "Denied",
        "Pending Risk Review"
      ]
    },
    "CreateTravelRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/TravelRequest"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "autoSubmitTravelRequest",
            "autoApproveTravelRequest"
          ],
          "properties": {
            "autoSubmitTravelRequest": {
              "type": "boolean"
            },
            "autoApproveTravelRequest": {
              "type": "boolean"
            }
          }
        }
      ]
    },
    "TravelRequest": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "externalIdentifier",
        "traveler",
        "travelDestinations",
        "cancellationReason",
        "status"
      ],
      "properties": {
        "externalIdentifier": {
          "type": "string",
          "format": "guid"
        },
        "traveler": {
          "$ref": "#/definitions/TravelerBase"
        },
        "travelDestinations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/TravelDestination"
          }
        },
        "cancellationReason": {
          "$ref": "#/definitions/TravelRequestCancellationReason"
        },
        "status": {
          "$ref": "#/definitions/TravelRequestStatus"
        }
      }
    },
    "TravelDestination": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "daysOff",
        "startDate",
        "endDate",
        "externalIdentifier",
        "employingEntityCountry",
        "permanentEstablishmentQuestions",
        "splitDayType",
        "toCity",
        "toCountry",
        "toState",
        "typeOfWork",
        "typeOfTravel",
        "permanentEstablishment",
        "socialSecurity",
        "taxLiability",
        "postedWorkerDirective"
      ],
      "properties": {
        "daysOff": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DayOfWeek"
          }
        },
        "startDate": {
          "type": "string",
          "format": "date-time"
        },
        "endDate": {
          "type": "string",
          "format": "date-time"
        },
        "externalIdentifier": {
          "type": "string",
          "format": "guid"
        },
        "employingEntityCountry": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "permanentEstablishmentQuestions": {
          "$ref": "#/definitions/PermanentEstablishmentQuestions"
        },
        "splitDayType": {
          "$ref": "#/definitions/TravelDestinationSplitDayType"
        },
        "toCity": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "toCountry": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "toState": {
          "type": "string",
          "maxLength": 6,
          "minLength": 4,
          "pattern": "[a-zA-Z]{2}-[a-zA-Z0-9]{1,3}"
        },
        "typeOfWork": {
          "$ref": "#/definitions/TravelDestinationTypeOfWork"
        },
        "typeOfTravel": {
          "$ref": "#/definitions/TravelDestinationTypeOfTravel"
        },
        "permanentEstablishment": {
          "$ref": "#/definitions/PermanentEstablishment"
        },
        "socialSecurity": {
          "$ref": "#/definitions/SocialSecurity"
        },
        "taxLiability": {
          "$ref": "#/definitions/TaxLiability"
        },
        "postedWorkerDirective": {
          "$ref": "#/definitions/PostedWorkerDirective"
        }
      }
    },
    "PermanentEstablishmentQuestions": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "activitiesOnTrip"
      ],
      "properties": {
        "activitiesOnTrip": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ActivitiesOnTrip"
          }
        }
      }
    },
    "ActivitiesOnTrip": {
      "type": "integer",
      "description": "",
      "x-enumNames": [
        "ProvideServices",
        "WorkInConstructionSite",
        "Auxiliary",
        "RemoteWork"
      ],
      "enum": [
        0,
        1,
        2,
        3
      ]
    },
    "TravelDestinationSplitDayType": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "FullDay",
        "Morning",
        "Afternoon"
      ],
      "enum": [
        "FullDay",
        "Morning",
        "Afternoon"
      ]
    },
    "TravelDestinationTypeOfWork": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Working",
        "NonWorking",
        "Training",
        "Not_providing_service",
        "Installation_of_goods",
        "Scientific_Research___Teaching",
        "Consultancy_Services",
        "Machine_Repairs",
        "Group_Travel",
        "Other"
      ],
      "enum": [
        "Working",
        "Non-Working",
        "Training",
        "Not providing service",
        "Installation of goods",
        "Scientific Research / Teaching",
        "Consultancy Services",
        "Machine Repairs",
        "Group Travel",
        "Other"
      ]
    },
    "TravelDestinationTypeOfTravel": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "BusinessTravel",
        "RemoteWork"
      ],
      "enum": [
        "BusinessTravel",
        "RemoteWork"
      ]
    },
    "PermanentEstablishment": {
      "allOf": [
        {
          "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "service",
            "agency",
            "fixedPlaceOfBusiness"
          ],
          "properties": {
            "service": {
              "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
            },
            "agency": {
              "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
            },
            "fixedPlaceOfBusiness": {
              "$ref": "#/definitions/FixedPlaceOfBusiness"
            }
          }
        }
      ]
    },
    "PermanentEstablishmentRiskDetails": {
      "allOf": [
        {
          "$ref": "#/definitions/RiskDetailsBase"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "riskLevel"
          ],
          "properties": {
            "riskLevel": {
              "$ref": "#/definitions/PermanentEstablishmentRiskDetailsRiskLevel"
            }
          }
        }
      ]
    },
    "PermanentEstablishmentRiskDetailsRiskLevel": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Unknown",
        "Low",
        "MediumLow",
        "Medium",
        "MediumHigh",
        "FurtherAssessmentNeeded",
        "Exceeded"
      ],
      "enum": [
        "Unknown",
        "Low",
        "MediumLow",
        "Medium",
        "MediumHigh",
        "FurtherAssessmentNeeded",
        "Exceeded"
      ]
    },
    "RiskDetailsBase": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "riskLevel",
        "riskSummary"
      ],
      "properties": {
        "riskLevel": {
          "$ref": "#/definitions/RiskDetailsBaseRiskLevel"
        },
        "riskSummary": {
          "type": "string"
        }
      }
    },
    "RiskDetailsBaseRiskLevel": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Low",
        "High"
      ],
      "enum": [
        "Low",
        "High"
      ]
    },
    "FixedPlaceOfBusiness": {
      "allOf": [
        {
          "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "placeOfManagement",
            "construction",
            "other"
          ],
          "properties": {
            "placeOfManagement": {
              "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
            },
            "construction": {
              "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
            },
            "other": {
              "$ref": "#/definitions/PermanentEstablishmentRiskDetails"
            }
          }
        }
      ]
    },
    "SocialSecurity": {
      "allOf": [
        {
          "$ref": "#/definitions/RiskDetailsBase"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "riskLevel"
          ],
          "properties": {
            "riskLevel": {
              "$ref": "#/definitions/SocialSecurityRiskLevel"
            }
          }
        }
      ]
    },
    "SocialSecurityRiskLevel": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Low",
        "High"
      ],
      "enum": [
        "Low",
        "High"
      ]
    },
    "TaxLiability": {
      "allOf": [
        {
          "$ref": "#/definitions/RiskDetailsBase"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "riskLevel",
            "taxTreatyInformation",
            "isTaxTreatyInEffect"
          ],
          "properties": {
            "riskLevel": {
              "$ref": "#/definitions/TaxLiabilityRiskLevel"
            },
            "taxTreatyInformation": {
              "type": "string"
            },
            "isTaxTreatyInEffect": {
              "type": "boolean"
            }
          }
        }
      ]
    },
    "TaxLiabilityRiskLevel": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Unknown",
        "Low",
        "Medium",
        "High",
        "ThresholdExceeded"
      ],
      "enum": [
        "Unknown",
        "Low",
        "Medium",
        "High",
        "ThresholdExceeded"
      ]
    },
    "PostedWorkerDirective": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "isPostedWorkerRequired",
        "description"
      ],
      "properties": {
        "isPostedWorkerRequired": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "CreatePostedWorkerFiling": {
      "allOf": [
        {
          "$ref": "#/definitions/PostedWorkerFiling"
        },
        {
          "type": "object",
          "additionalProperties": {}
        }
      ]
    },
    "PostedWorkerFiling": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "externalIdentifier",
        "postedWorker",
        "travel",
        "posting",
        "hosting"
      ],
      "properties": {
        "externalIdentifier": {
          "type": "string"
        },
        "postedWorker": {
          "$ref": "#/definitions/PostedWorker"
        },
        "travel": {
          "$ref": "#/definitions/TravelActivity"
        },
        "posting": {
          "$ref": "#/definitions/Posting"
        },
        "hosting": {
          "$ref": "#/definitions/Hosting"
        }
      }
    },
    "PostedWorker": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "externalIdentifier",
        "firstName",
        "middleName",
        "lastName",
        "email",
        "telephoneCountryCode",
        "telephoneNumber",
        "citizenship",
        "homeCountry",
        "nationality",
        "gender",
        "dateOfBirth",
        "countryOfBirth",
        "cityOfBirth",
        "address"
      ],
      "properties": {
        "externalIdentifier": {
          "type": "string"
        },
        "firstName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "middleName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "lastName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "email": {
          "type": "string",
          "maxLength": 320,
          "minLength": 0
        },
        "telephoneCountryCode": {
          "type": "string",
          "maxLength": 4,
          "minLength": 0
        },
        "telephoneNumber": {
          "type": "string",
          "maxLength": 20,
          "minLength": 0
        },
        "citizenship": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "homeCountry": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "nationality": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "gender": {
          "$ref": "#/definitions/Gender"
        },
        "dateOfBirth": {
          "type": "string",
          "format": "date-time"
        },
        "countryOfBirth": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "cityOfBirth": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "address": {
          "$ref": "#/definitions/Address"
        }
      }
    },
    "Gender": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Female",
        "Male",
        "Other"
      ],
      "enum": [
        "Female",
        "Male",
        "Other"
      ]
    },
    "Address": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "line1",
        "line2",
        "city",
        "county",
        "stateProvince",
        "country",
        "postalCode"
      ],
      "properties": {
        "line1": {
          "type": "string",
          "maxLength": 200,
          "minLength": 0
        },
        "line2": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "city": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "county": {
          "type": "string",
          "maxLength": 50,
          "minLength": 0
        },
        "stateProvince": {
          "type": "string",
          "maxLength": 50,
          "minLength": 0
        },
        "country": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "postalCode": {
          "type": "string",
          "maxLength": 10,
          "minLength": 0
        }
      }
    },
    "TravelActivity": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "externalIdentifier",
        "destinationCountry",
        "destinationCity",
        "startDate",
        "endDate",
        "primaryPurpose",
        "typeOfTravel"
      ],
      "properties": {
        "externalIdentifier": {
          "type": "string"
        },
        "destinationCountry": {
          "type": "string",
          "maxLength": 3,
          "minLength": 2,
          "pattern": "[a-zA-Z]{2,3}"
        },
        "destinationCity": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "startDate": {
          "type": "string",
          "format": "date-time"
        },
        "endDate": {
          "type": "string",
          "format": "date-time"
        },
        "primaryPurpose": {
          "$ref": "#/definitions/TravelActivityPrimaryPurpose"
        },
        "typeOfTravel": {
          "$ref": "#/definitions/TravelActivityTypeOfTravel"
        }
      }
    },
    "TravelActivityPrimaryPurpose": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Business_Meeting___Conference",
        "Machine_Repairs",
        "Training",
        "Working",
        "NonWorking",
        "Working_NonProfit_Generating",
        "Initial_installation_or_assembly_or_goods",
        "Scientific_Research___Teaching",
        "Consultancy_Services",
        "Group_Trip"
      ],
      "enum": [
        "Business Meeting / Conference",
        "Machine Repairs",
        "Training",
        "Working",
        "Non-Working",
        "Working Non-Profit Generating",
        "Initial installation or assembly or goods",
        "Scientific Research / Teaching",
        "Consultancy Services",
        "Group Trip"
      ]
    },
    "TravelActivityTypeOfTravel": {
      "type": "string",
      "description": "",
      "x-enumNames": [
        "Business_Travel",
        "Remote_Work"
      ],
      "enum": [
        "Business Travel",
        "Remote Work"
      ]
    },
    "Posting": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "jobTitle",
        "company"
      ],
      "properties": {
        "jobTitle": {
          "type": "string",
          "maxLength": 255,
          "minLength": 0
        },
        "company": {
          "$ref": "#/definitions/Company"
        }
      }
    },
    "Company": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "name",
        "address",
        "taxNumber",
        "email",
        "telephoneCountryCode",
        "telephoneNumber",
        "registrationNumber",
        "representative",
        "contact"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "address": {
          "$ref": "#/definitions/Address"
        },
        "taxNumber": {
          "type": "string",
          "maxLength": 20,
          "minLength": 0
        },
        "email": {
          "type": "string",
          "maxLength": 320,
          "minLength": 0
        },
        "telephoneCountryCode": {
          "type": "string",
          "maxLength": 4,
          "minLength": 0
        },
        "telephoneNumber": {
          "type": "string",
          "maxLength": 20,
          "minLength": 0
        },
        "registrationNumber": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "representative": {
          "$ref": "#/definitions/Representative"
        },
        "contact": {
          "$ref": "#/definitions/Contact"
        }
      }
    },
    "Representative": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "firstName",
        "lastName",
        "email",
        "telephoneCountryCode",
        "telephoneNumber"
      ],
      "properties": {
        "firstName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "lastName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "email": {
          "type": "string",
          "maxLength": 320,
          "minLength": 0
        },
        "telephoneCountryCode": {
          "type": "string",
          "maxLength": 4,
          "minLength": 0
        },
        "telephoneNumber": {
          "type": "string",
          "maxLength": 20,
          "minLength": 0
        }
      }
    },
    "Contact": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "firstName",
        "lastName",
        "email"
      ],
      "properties": {
        "firstName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "lastName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "email": {
          "type": "string",
          "maxLength": 320,
          "minLength": 0
        }
      }
    },
    "Hosting": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "jobTitle",
        "company",
        "workplace"
      ],
      "properties": {
        "jobTitle": {
          "type": "string",
          "maxLength": 255,
          "minLength": 0
        },
        "company": {
          "$ref": "#/definitions/Company"
        },
        "workplace": {
          "$ref": "#/definitions/Workplace"
        }
      }
    },
    "Workplace": {
      "type": "object",
      "additionalProperties": {},
      "required": [
        "name",
        "address"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 0
        },
        "address": {
          "$ref": "#/definitions/Address"
        }
      }
    },
    "HealthCheckRequestModel": {
      "type": "object",
      "required": [
        "Timestamp",
        "Id"
      ],
      "properties": {
        "Timestamp": {
          "type": "string",
          "format": "date-time"
        },
        "Id": {
          "type": "string",
          "format": "guid"
        },
        "Payload": {
          "type": "string"
        }
      }
    },
    "EquusKeyExchangeRequest": {
      "allOf": [
        {
          "$ref": "#/definitions/EquusKeyExchange"
        },
        {
          "type": "object"
        }
      ]
    },
    "EquusKeyExchange": {
      "type": "object",
      "required": [
        "iat",
        "sig",
        "uri",
        "cid",
        "jwk"
      ],
      "properties": {
        "iat": {
          "type": "string",
          "format": "date-time"
        },
        "sig": {
          "type": "string"
        },
        "uri": {
          "type": "string",
          "format": "uri"
        },
        "cid": {
          "type": "string"
        },
        "jwk": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JsonWebKey"
          }
        }
      }
    },
    "JsonWebKey": {
      "allOf": [
        {
          "$ref": "#/definitions/SecurityKey"
        },
        {
          "type": "object",
          "additionalProperties": {},
          "required": [
            "KeySize",
            "HasPrivateKey"
          ],
          "properties": {
            "AdditionalData": {
              "type": "object",
              "additionalProperties": {}
            },
            "Alg": {
              "type": "string"
            },
            "Crv": {
              "type": "string"
            },
            "D": {
              "type": "string"
            },
            "DP": {
              "type": "string"
            },
            "DQ": {
              "type": "string"
            },
            "E": {
              "type": "string"
            },
            "K": {
              "type": "string"
            },
            "KeyId": {
              "type": "string"
            },
            "KeyOps": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "Kid": {
              "type": "string"
            },
            "Kty": {
              "type": "string"
            },
            "N": {
              "type": "string"
            },
            "Oth": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "P": {
              "type": "string"
            },
            "Q": {
              "type": "string"
            },
            "QI": {
              "type": "string"
            },
            "Use": {
              "type": "string"
            },
            "X": {
              "type": "string"
            },
            "X5c": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "X5t": {
              "type": "string"
            },
            "X5tS256": {
              "type": "string"
            },
            "X5u": {
              "type": "string"
            },
            "Y": {
              "type": "string"
            },
            "KeySize": {
              "type": "integer",
              "format": "int32"
            },
            "HasPrivateKey": {
              "type": "boolean"
            }
          }
        }
      ]
    },
    "SecurityKey": {
      "type": "object",
      "x-abstract": true,
      "properties": {
        "KeyId": {
          "type": "string"
        },
        "CryptoProviderFactory": {
          "$ref": "#/definitions/CryptoProviderFactory"
        }
      }
    },
    "CryptoProviderFactory": {
      "type": "object",
      "required": [
        "CacheSignatureProviders",
        "SignatureProviderObjectPoolCacheSize"
      ],
      "properties": {
        "CryptoProviderCache": {
          "$ref": "#/definitions/CryptoProviderCache"
        },
        "CustomCryptoProvider": {
          "$ref": "#/definitions/ICryptoProvider"
        },
        "CacheSignatureProviders": {
          "type": "boolean",
          "default": true
        },
        "SignatureProviderObjectPoolCacheSize": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "CryptoProviderCache": {
      "type": "object",
      "x-abstract": true
    },
    "ICryptoProvider": {
      "type": "object",
      "x-abstract": true
    }
  }
}