PPL

PPL Placements API

Manages the Placement structure in PPL Next Gen - Placements, Programmes, Contracts and the Sections within a Contract - together with carrier and underwriter participations, role assignment, and the broker-side negotiation of terms. This is the bind-side surface of the platform. OpenAPI 3.0.1, 16 paths and 32 operations.

OpenAPI Specification

ppl-london-market-placements.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "placement",
    "description": "This API collection provides the capability to manage aspects of the Placement structure. \nThis includes that overall management of Placements, Programmes, Contracts as well as any Sections within a Contract. This also includes the ability to set up carrier/underwriter participants for insurance placement purposes.",
    "version": "1"
  },
  "servers": [
    {
      "url": "https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements",
      "description": "Joint Integration testing (JIT2) environment"
    }
  ],
  "tags": [
    {
      "name": "health"
    },
    {
      "name": "version"
    },
    {
      "name": "placement",
      "description": "Enables the creation and management of the Placement structure that comprises of Programmes and Contracts."
    },
    {
      "name": "programme",
      "description": "Enables the creation and management of Programme structures within a Placement. This also includes the capability to add existing Contracts into a programme."
    },
    {
      "name": "contract",
      "description": "Enables the creation and management of Contract structured data."
    },
    {
      "name": "section",
      "description": "Enables the creation and management of Contract sections, as structured data. Each Section represents of a specific partition of the overall risk to be insured. A section can be based upon the cover type, coverage (e.g. class of business), geographic territory and / or layer (limit of liability)."
    },
    {
      "name": "participation",
      "description": "Enables the creation, management and processing of Open Market Underwriters and Facility Panel Underwriters that are willing to participate in the underwriting of an insured's asset or liability, represented within the un/structured information in a Contract or Section."
    },
    {
      "name": "negotiation",
      "description": "Enables the creation and management of the flow of negotiations from a Broker to an Underwriter. Negotiations shown will be those which (1) have been formally communicated to the Underwriter; and (2) 'saved' Negotiation records (i.e. that are waiting to be sent to the Underwriter)."
    }
  ],
  "paths": {
    "/health": {
      "get": {
        "tags": [
          "health"
        ],
        "description": "Checks the health of this Placement Resource API.",
        "operationId": "Health",
        "responses": {
          "200": {
            "description": "UP if ok.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/health"
                }
              }
            }
          }
        }
      }
    },
    "/placements": {
      "get": {
        "tags": [
          "placement"
        ],
        "description": "Returns a list of Placement records and any Programme structures, based upon various query parameters. This end point will also provide minimal information about any Contracts within the Placement structure. Pagination functionality is supported on this operation.",
        "operationId": "Placement_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": "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": "brokerTeamId",
            "in": "query",
            "description": "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used. \nSearch using multiple exact match method, e.g. brokerTeamId=id1,id2,id3.",
            "schema": {
              "type": "string",
              "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})*$"
            }
          },
          {
            "name": "brokerTeamName",
            "in": "query",
            "description": "The name of the Broker Team, as defined by the broker organisation. \nSearch using contains method, e.g. brokerTeamName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "companyName",
            "in": "query",
            "description": "Name of the Company the User belongs to.\nSearch using contains method, e.g. companyName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "branchName",
            "in": "query",
            "description": "Name of the Branch the Broker Team belongs to.\nSearch using contains method, e.g. branchName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "brokerEmail",
            "in": "query",
            "description": "The User email of the Broker User responsible for the Placement.\nSearch using multiple exact match method, e.g. brokerEmail=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": "brokerFirstName",
            "in": "query",
            "description": "The First Name of the Broker User responsible for the Placement.\nSearch using contains method, e.g. brokerFirstName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,30}\\)$"
            }
          },
          {
            "name": "brokerLastName",
            "in": "query",
            "description": "The Last Name of the Broker User responsible for the Placement.\nSearch using contains method, e.g. brokerLastName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,30}\\)$"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "description": "The name by which the Broker User knows the client for the purposes of seeking insurance. \nSearch using contains method, e.g. clientName=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,40}\\)$"
            }
          },
          {
            "name": "placementDescription",
            "in": "query",
            "description": "A description of the Placement supplied by the Broker.\nSearch using contains method, e.g. placementDescription=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "effectiveYear",
            "in": "query",
            "description": "The represented year in which the Placement is effective for.\nSearch using multiple exact match method, e.g. effectiveYear=year1,year2,year3.",
            "schema": {
              "type": "string",
              "pattern": "^(\\d{4})(,\\d{4})*$"
            }
          },
          {
            "name": "placementEarliestInceptionDate",
            "in": "query",
            "description": "The earliest inception date of all Contracts contained within the Placement structure.\nSearch using range method, e.g. placementEarliestInceptionDate=range(date1,date2).",
            "schema": {
              "type": "string",
              "pattern": "^range\\(\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}\\)$"
            }
          },
          {
            "name": "placementStatus",
            "in": "query",
            "description": "The code that represents the overall Placement status.\nSearch using multiple exact match method, e.g. placementStatus=code1,code2,code3.",
            "schema": {
              "type": "string",
              "pattern": "^(.*)(,.*)*$"
            }
          },
          {
            "name": "programmeDescription",
            "in": "query",
            "description": "A description of the Programme supplied by the Broker.\nSearch using contains method, e.g. programmeDescription=contains(astring).",
            "schema": {
              "type": "string",
              "pattern": "^contains\\(.{1,256}\\)$"
            }
          },
          {
            "name": "programmeEarliestInceptionDate",
            "in": "query",
            "description": "The earliest inception date of all Contracts contained within the Programme structure.\nSearch using range method, e.g. programmeEarliestInceptionDate=range(date1,date2).",
            "schema": {
              "type": "string",
              "pattern": "^range\\(\\d{4}-\\d{2}-\\d{2},\\d{4}-\\d{2}-\\d{2}\\)$"
            }
          },
          {
            "name": "programmeStatus",
            "in": "query",
            "description": "The code that represents the Programme status.\nSearch using multiple exact match method, e.g. programmeStatus=code1,code2,code3.",
            "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": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/response_placements_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": [
          "placement"
        ],
        "description": "Creates a Placement record. This is the starting point in order for Contracts and Programmes to be added into the platform.",
        "operationId": "Placement_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": "Placement structure for creation.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/placement_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/placement_getbyid"
                }
              }
            }
          },
          "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": "placement"
      }
    },
    "/placements/{placementId}": {
      "get": {
        "tags": [
          "placement"
        ],
        "description": "Returns the Placement structure for a specified Placement record. This will contains information about the Placement, its Programmes and summarised information about Contract records within the Placement structure.",
        "operationId": "Placement_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": "placementId",
            "in": "path",
            "description": "A system-generated unique identifier for a Placement, 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": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/placement_getbyid"
                }
              }
            }
          },
          "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": [
          "placement"
        ],
        "description": "Updates a Placement record, where the record is in a state that enables its update.",
        "operationId": "Placement_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": "placementId",
            "in": "path",
            "description": "A system-generated unique identifier for a Placement, 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": "Placement structure for updates.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/placement_put"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/placement_getbyid"
                }
              }
            }
          },
          "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": "placement"
      },
      "delete": {
        "tags": [
          "placement"
        ],
        "description": "Deletes a Placement record, where the record is in a state that enables its deletion.",
        "operationId": "Placement_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": "placementId",
            "in": "path",
            "description": "A system-generated unique identifier for a Placement, 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": "",
            "content": {}
          },
          "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"
                }
              }
            }
          }
        }
      }
    },
    "/version": {
      "get": {
        "tags": [
          "version"
        ],
        "description": "Checks the version of this Placement Resource API.",
        "operationId": "Version",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/version"
                }
              }
            }
          }
        }
      }
    },
    "/placements/{placementId}/programmes": {
      "post": {
        "tags": [
          "programme"
        ],
        "description": "Creates a Programme record under the Placement structure. This enables the grouping of Contract records that address a common insurance purpose. Contracts can be added at the time of creation.",
        "operationId": "Programme_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}$"
            }
          },
          {
            "name": "placementId",
            "in": "path",
            "description": "A system-generated unique identifier for a Placement, 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": "A collection of Contracts for a common purpose. Programme structure for creation and updates.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/programme_post"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/programme_getbyid"
                }
              }
            }
          },
          "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": 

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