PPL

PPL Documents API

Manages document files and document metadata across the Placement hierarchy, including the Market Reform Contract (MRC) itself and its supporting documents, with versioning, content retrieval, download and a separate secured content and download path. This is the contract-issuance surface. OpenAPI 3.0.1, 8 paths and 11 operations.

OpenAPI Specification

ppl-london-market-documents.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "document",
    "description": "This API collection provides the capability of supporting the management of document files and document information in the platform. This includes the Market Reform Contract (MRC) as well as supporting documents that can be added at various levels of hierarchy in the Placement structure.\n\nEnables the creation and management of Document data relating to the hierarchical structure of a Placement. This includes the management of the Market Reform Contract (MRC) documents and any supporting documentation that is used as part of a Submission to an Underwriter for insurance placement purposes.",
    "version": "1"
  },
  "servers": [
    {
      "url": "https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/documents",
      "description": "Joint Integration testing (JIT2) environment"
    }
  ],
  "tags": [
    {
      "name": "health"
    },
    {
      "name": "version"
    },
    {
      "name": "document"
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "tags": [
          "health"
        ],
        "description": "Checks the health of this Document Resource API.",
        "operationId": "Health",
        "responses": {
          "200": {
            "description": "UP if ok.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/health"
                }
              }
            }
          }
        }
      }
    },
    "/version": {
      "get": {
        "tags": [
          "version"
        ],
        "description": "Checks the version of this Document Resource API.",
        "operationId": "Version",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/version"
                }
              }
            }
          }
        }
      }
    },
    "/documents": {
      "get": {
        "tags": [
          "document"
        ],
        "description": "Returns a list of all Document records associated within a specified Placement structure, based upon various query parameters. Pagination functionality is supported on this operation.",
        "operationId": "Document_GetAll_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A list of system-generated unique identifiers for each Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "pattern": "^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "placementId",
            "in": "query",
            "description": "A system-generated unique identifier for a Placement, with a format and structure defined by the technology used.\nSearch using multiple exact match method, e.g. placementId=placement1,placement2,placement3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "documentId",
            "in": "query",
            "description": "A system-generated identifier for each Document record, with a format and structure defined by the technology used. This identifier is used to group multiple versions of Document records together.\nSearch using multiple exact match method, e.g. documentId=id1,id2,id3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "createdDate",
            "in": "query",
            "description": "The date timestamp when the entity was created.\nSearch using range method, e.g. createdDate=range(date1,date2).",
            "schema": {
              "type": "string",
              "pattern": "^range\\(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z,\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z\\)$"
            }
          },
          {
            "name": "modifiedDate",
            "in": "query",
            "description": "The date timestamp when the entity was modified.\nSearch using range method, e.g. modifiedDate=range(date1,date2).",
            "schema": {
              "type": "string",
              "pattern": "^range\\(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z,\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z\\)$"
            }
          },
          {
            "name": "uploadUserEmail",
            "in": "query",
            "description": "The User email of the User that uploaded the Document.\nSearch using multiple exact match method, e.g. uploadUserEmail=email1,email2,email3.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+)*$"
            }
          },
          {
            "name": "uploadUserFirstName",
            "in": "query",
            "description": "The first name of the User that uploaded the Document.\nSearch using contains method, e.g. uploadUserFirstName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,40}\\)$"
            }
          },
          {
            "name": "uploadUserLastName",
            "in": "query",
            "description": "The last name of the User that uploaded the Document.\nSearch using contains method, e.g. uploadUserLastName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,40}\\)$"
            }
          },
          {
            "name": "teamName",
            "in": "query",
            "description": "The name of the Broker Team, as defined by the broker organisation.\nSearch using contains method, e.g. teamName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "fileName",
            "in": "query",
            "description": "The file name of the Document, including its file extension.\nSearch using contains method, e.g. fileName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,40}\\)$"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "A description about the Document and / or its contents.\nSearch using contains method, e.g. description=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "classType",
            "in": "query",
            "description": "A code that describes the class of Document. Examples include Digitised MRC, Non-digitised MRC or Supporting Document.\nSearch using multiple exact match method, e.g. classType=code1,code2,code3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "A code that represents the type of Document.\nSearch using multiple exact match method, e.g. type=code1,code2,code3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "contextType",
            "in": "query",
            "description": "Identifies where within a Placement structure this Document is held.\nSearch using multiple exact match method, e.g. contextType=code1,code2,code3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "contextId",
            "in": "query",
            "description": "The unique identifier given within the hierarchy of the Placement structure where the Document is held.\nSearch using multiple exact match method, e.g. contextId=id1,id2,id3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field and order (unique field only).\nUse + before the field name for ascending order, use - for descending order.",
            "schema": {
              "type": "string",
              "pattern": "^[+-]?\\w+$"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Number of the page to be retrieved.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1
            },
            "example": 1
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Size of the page to be retrieved.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 200
            },
            "example": 200
          }
        ],
        "responses": {
          "200": {
            "description": "List of Document records",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_documents_getall"
                }
              }
            }
          },
          "400": {
            "description": "Mandatory header parameter is missing from the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "404": {
            "description": "Invalid team or user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "414": {
            "description": "The maximum field length of the URI provided for the request has been exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "document"
        ],
        "description": "Creates a Document record, representing either the Market Reform Contract (MRC) or another type of supporting document. The request contains the document attributes as well as the electronic file which will be submitted into the platform's content management system. This end point will also be used for when an electronic file is to be replaced, i.e. versioned.",
        "operationId": "Document_Post_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          }
        ],
        "requestBody": {
          "description": "Document structure for creates.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/document_post_FileString"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Document record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/document_post_response"
                }
              }
            }
          },
          "400": {
            "description": "Mandatory header parameter is missing from the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "404": {
            "description": "Invalid team or user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "414": {
            "description": "The maximum field length of the URI provided for the request has been exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "document"
      }
    },
    "/documents/versions/{documentVersionId}": {
      "get": {
        "tags": [
          "document"
        ],
        "description": "Returns a single Document record. This record will contain the document attributes of the document, but does not provide the electronic file.",
        "operationId": "Document_GetById_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "documentVersionId",
            "in": "path",
            "description": "A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Document record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/document_get"
                }
              }
            }
          },
          "400": {
            "description": "Mandatory header parameter is missing from the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "404": {
            "description": "Invalid team or user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "414": {
            "description": "The maximum field length of the URI provided for the request has been exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "document"
        ],
        "description": "Updates the data attributes of a Document record. This operation will not replace the electronic file.",
        "operationId": "Document_Put_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "X-Last-Modified",
            "in": "header",
            "description": "The date timestamp to be used to validate an update operation.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2014-12-31T23:59:59.938Z"
          },
          {
            "name": "documentVersionId",
            "in": "path",
            "description": "A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          }
        ],
        "requestBody": {
          "description": "Document structure for updates.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/document_put"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Document record",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/document_get"
                }
              }
            }
          },
          "400": {
            "description": "Mandatory header parameter is missing from the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "404": {
            "description": "Invalid team or user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "414": {
            "description": "The maximum field length of the URI provided for the request has been exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "document"
      },
      "delete": {
        "tags": [
          "document"
        ],
        "description": "Deletes a Document record, where the record is in a state that enables its deletion.",
        "operationId": "Document_Delete_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "documentVersionId",
            "in": "path",
            "description": "A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Document outpur structure for delete",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/document_delete_response"
                }
              }
            }
          },
          "400": {
            "description": "Mandatory header parameter is missing from the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "404": {
            "description": "Invalid team or user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "414": {
            "description": "The maximum field length of the URI provided for the request has been exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          }
        }
      }
    },
    "/documents/versions/{documentVersionId}/content": {
      "get": {
        "tags": [
          "document"
        ],
        "description": "Returns the electronic file that is represented by the Document record. This is the subsequent end point that is called following an asynchronous response that the electronic file is ready to be downloaded.",
        "operationId": "Document_GetContent_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "documentVersionId",
            "in": "path",
            "description": "A system-generated unique identifier for a Document Version, with a format and structure defined by the technology used.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "notificationId",
            "in": "query",
            "description": "A system-generated unique identifier for a Notification, with a format and structure defined by the technology used.\nSearch using (mandatory) single exact match method, e.g. notificationId=guid.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The binary data that represents the electronic file which the Document refers to.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "description": "The binary data that represents the electronic file which the Document refers to."
                }
              }
            }
          },
          "400": {
            "description": "Mandatory header parameter is missing from the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "401": {
            "description": "Authentication error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "404": {
            "description": "Invalid team or user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "414": {
            "description": "The maximum field length of the URI provided for the request has been exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_document"
                }
              }
            }
          }
        }
      }
    },
    "/documents/versions/{documentVersionId}/download": {
      "post": {
        "tags": [
          "document"
        ],
        "description": "Initiates the asynchronous operation to download the electronic file of this document.",
        "operationId": "Document_PostDownload_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Requesting User or the Impersonated User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "X-Auth-Team",
            "in": "header",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used.",
            "required": true,
            "schema"

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ppl-london-market/refs/heads/main/openapi/ppl-london-market-documents.json