{
  "openapi": "3.0.1",
  "info": {
    "title": "Register of Interests API",
    "description": "API to allow users to query and download the register of Members interests.",
    "contact": {
      "name": "UK Parliament",
      "url": "https://www.parliament.uk/",
      "email": "softwareengineering@parliament.uk"
    },
    "version": "v2"
  },
  "paths": {
    "/api/v2/Categories": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Return a list of categories interests should be registered under, sorted by category number.",
        "parameters": [
          {
            "name": "Type",
            "in": "query",
            "description": "Type of categories (commons members, commons staff list etc.) to filter by.\r\nIf not provided, all categories will be returned. Please note: this **will** include other types as they are added in the future.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RegisterType"
              }
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "The number of records to skip from the first, default is 0.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "Take",
            "in": "query",
            "description": "The number of records to return, default is 20.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishedCategoryApiLinkedSearchResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Categories/{id}": {
      "get": {
        "tags": [
          "Categories"
        ],
        "summary": "Return details of an interest category by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the category.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishedCategory"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Interests": {
      "get": {
        "tags": [
          "Interests"
        ],
        "summary": "Return a list of interests that have been published.",
        "parameters": [
          {
            "name": "RegisterId",
            "in": "query",
            "description": "Search for an interest published in a register with this ID. If not provided, returns interests in all registers.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "InterestIds",
            "in": "query",
            "description": "List of interest ids to filter by.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Type of categories (commons members, commons staff list etc.) to filter by.\r\nIf not provided, all categories will be returned. Please note: this **will** include other types as they are added in the future.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RegisterType"
              }
            }
          },
          {
            "name": "ExcludeExpired",
            "in": "query",
            "description": "Whether to include or exclude interests that have expired (will also apply to child interests if ExpandChildInterests is true).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "Take",
            "in": "query",
            "description": "The number of records to return, default is 20.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "MemberId",
            "in": "query",
            "description": "Search for an interest created by member with this ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "CategoryId",
            "in": "query",
            "description": "Search for an interest within a specific category with this ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PublishedFrom",
            "in": "query",
            "description": "Search for an interest published on or after this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "PublishedTo",
            "in": "query",
            "description": "Search for an interest published on or before this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "RegisteredFrom",
            "in": "query",
            "description": "Search for an interest registered on or after this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "RegisteredTo",
            "in": "query",
            "description": "Search for an interest registered on or before this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "UpdatedFrom",
            "in": "query",
            "description": "Search for an interest which has any updates on or after this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "UpdatedTo",
            "in": "query",
            "description": "Search for an interest which has any updates on or before this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "ExpandChildInterests",
            "in": "query",
            "description": "If true returns related interests in a nested format, rather than as individual items.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SortOrder",
            "in": "query",
            "description": "The order in which to return records.",
            "schema": {
              "$ref": "#/components/schemas/InterestsSortOrder"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "The number of records to skip from the first, default is 0.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishedInterestApiLinkedSearchResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Interests/{id}": {
      "get": {
        "tags": [
          "Interests"
        ],
        "summary": "Return the latest version of an interest which has been published.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the interest.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishedInterest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Interests/csv": {
      "get": {
        "tags": [
          "Interests"
        ],
        "summary": "Return interests that have been published on a register as a collection of CSVs packaged in a ZIP file",
        "parameters": [
          {
            "name": "InterestIds",
            "in": "query",
            "description": "List of interest ids to filter by.",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              }
            }
          },
          {
            "name": "ExpandChildInterests",
            "in": "query",
            "description": "If true returns related interests together (in subsequent rows from parent interest), rather than in a separate file",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RegisterId",
            "in": "query",
            "description": "Search for an interest published in a register with this ID. If not provided, returns interests in all registers.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Type of categories (commons members, commons staff list etc.) to filter by.\r\nIf not provided, all categories will be returned. Please note: this **will** include other types as they are added in the future.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RegisterType"
              }
            }
          },
          {
            "name": "ExcludeExpired",
            "in": "query",
            "description": "Whether to include or exclude interests that have expired (will also apply to child interests if ExpandChildInterests is true).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "MemberId",
            "in": "query",
            "description": "Search for an interest created by member with this ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "CategoryId",
            "in": "query",
            "description": "Search for an interest with associated category with this ID.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PublishedFrom",
            "in": "query",
            "description": "Search for an interest published on or after this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "PublishedTo",
            "in": "query",
            "description": "Search for an interest published on or before this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "RegisteredFrom",
            "in": "query",
            "description": "Search for an interest registered on or after this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "RegisteredTo",
            "in": "query",
            "description": "Search for an interest registered on or before this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "UpdatedFrom",
            "in": "query",
            "description": "Search for an interest which has any updates on or after this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "UpdatedTo",
            "in": "query",
            "description": "Search for an interest which has any updates on or before this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "IncludeFieldDescriptions",
            "in": "query",
            "description": "Returns a metadata file for each category, containing a list of fields which are available for a member to add further information about the interest.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Registers": {
      "get": {
        "tags": [
          "Registers"
        ],
        "summary": "Return a list of published versions of registers of interests.",
        "parameters": [
          {
            "name": "Type",
            "in": "query",
            "description": "Type of register (commons members, commons staff list etc.) to filter by.\r\nIf not provided, all register will be returned. Please note: this **will** include other types as they are added in the future.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/RegisterType"
              }
            }
          },
          {
            "name": "SessionId",
            "in": "query",
            "description": "Search for registers published within a parliamentary session with this ID. Find session data at https://whatson-api.parliament.uk/.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Skip",
            "in": "query",
            "description": "The number of records to skip from the first, default is 0.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "Take",
            "in": "query",
            "description": "The number of records to return, default is 20.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishedRegisterApiLinkedSearchResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Registers/{id}": {
      "get": {
        "tags": [
          "Registers"
        ],
        "summary": "Return a published version of a register of interests by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the register.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishedRegister"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/Registers/{id}/document": {
      "get": {
        "tags": [
          "Registers"
        ],
        "summary": "Return a published register as a PDF document by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the register.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Whether to return a document containing the full register or only updates. Default value is Full.",
            "schema": {
              "$ref": "#/components/schemas/RegisterDocument"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ApiResponseError": {
        "type": "object",
        "properties": {
          "errorType": {
            "$ref": "#/components/schemas/ApiResponseErrorType"
          },
          "errorMessages": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiResponseErrorType": {
        "enum": [
          "ValidationError",
          "AuthenticationError",
          "ConnectivityError",
          "GenericError"
        ],
        "type": "string"
      },
      "DisplayInformation": {
        "type": "object",
        "properties": {
          "displayLabel": {
            "type": "string",
            "nullable": true
          },
          "displayValue": {
            "type": "string",
            "nullable": true
          },
          "hideIfNullOrEmpty": {
            "type": "boolean"
          },
          "accordionTitle": {
            "type": "string",
            "nullable": true
          },
          "groupTitle": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Field": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "typeInfo": {
            "$ref": "#/components/schemas/FieldTypeInfo"
          },
          "value": {
            "nullable": true
          },
          "values": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/Field"
              }
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FieldTypeInfo": {
        "type": "object",
        "properties": {
          "currencyCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InterestsSortOrder": {
        "enum": [
          "PublishingDateDescending",
          "CategoryAscending"
        ],
        "type": "string",
        "description": "The order in which interests endpoints should return results."
      },
      "Link": {
        "type": "object",
        "properties": {
          "rel": {
            "type": "string",
            "description": "Relationship of the link to the object requested.",
            "nullable": true
          },
          "href": {
            "type": "string",
            "description": "A complete URL that shows how the action can be performed.",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "Request method of the link.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "HATEOAS Link for retrieving related information to a response or object."
      },
      "Member": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID of the member.",
            "format": "int32"
          },
          "nameDisplayAs": {
            "type": "string",
            "description": "Member's current full name, as it should be displayed in text.",
            "nullable": true
          },
          "nameListAs": {
            "type": "string",
            "description": "Member's current name in the format {surname}, {forename}, for use in an ordered list.",
            "nullable": true
          },
          "house": {
            "type": "string",
            "description": "The name of the House the Member is currently associated with.",
            "nullable": true
          },
          "memberFrom": {
            "type": "string",
            "description": "How they are a Member of Parliament (for MP, this is their constituency)",
            "nullable": true
          },
          "party": {
            "type": "string",
            "description": "Party the Member is currently associated with.",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for retrieving further information about this member.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Member of Parliament who has registered the interest."
      },
      "MemberStaffEmployment": {
        "required": [
          "member"
        ],
        "type": "object",
        "properties": {
          "jobTitle": {
            "type": "string",
            "description": "Job title the staff member holds for the member.",
            "nullable": true
          },
          "member": {
            "$ref": "#/components/schemas/Member"
          }
        },
        "additionalProperties": false,
        "description": "Information about the member a staff member works for, and their job title for that member."
      },
      "MemberStaffInfo": {
        "required": [
          "employment"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Unique identifier for the staff on a per-request basis to enable correlation of interest within same request where member has multiple staff with same job title.",
            "nullable": true
          },
          "employment": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemberStaffEmployment"
            },
            "description": "List of members the staff works for, and their job title per member.\r\nPlease note: not all interests declared by the staff will be relevant for all of their members. Refer to relevant field for that information.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information for the staff member who has registered the interest"
      },
      "ObjectApiResponse": {
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiResponseError"
          },
          "response": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "PublishedCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID of the category.",
            "format": "int32"
          },
          "number": {
            "type": "string",
            "description": "Number of the category in the code of conduct.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Name of the category.",
            "nullable": true
          },
          "parentCategoryIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The unique ID for any parent category to which this category is associated, if the category is associated with another category.",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/RegisterType"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for retrieving further information about this category.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Category an interest can be registered with."
      },
      "PublishedCategoryApiLinkedSearchResult": {
        "type": "object",
        "properties": {
          "skip": {
            "type": "integer",
            "description": "The skip value that was used in the query.",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "description": "The take value that was used in the query.",
            "format": "int32"
          },
          "totalResults": {
            "type": "integer",
            "description": "The total number of results which matches the query.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishedCategory"
            },
            "description": "The list of items found for the specified page (by requested skip and take).",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for navigating through the paginated result.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Paginated search result with HATEOAS Links."
      },
      "PublishedInterest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID of the interest.",
            "format": "int32"
          },
          "parentInterestId": {
            "type": "integer",
            "description": "The unique ID for the payer (parent interest) to which this payment (child interest) is associated.",
            "format": "int32",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/PublishedCategory"
          },
          "registrant": {
            "$ref": "#/components/schemas/Registrant"
          },
          "childInterests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishedInterest"
            },
            "description": "List of Interests which are sub interests of this interest. Only populated when `ExpandChildInterests` is true or when retrieving a single interest by ID; otherwise this is an empty list.",
            "nullable": true
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishedInterestVersion"
            },
            "description": "List of versions the interest has appeared in a register under",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for retrieving related information about this interest.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Representation of a interest that has been published"
      },
      "PublishedInterestApiLinkedSearchResult": {
        "type": "object",
        "properties": {
          "skip": {
            "type": "integer",
            "description": "The skip value that was used in the query.",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "description": "The take value that was used in the query.",
            "format": "int32"
          },
          "totalResults": {
            "type": "integer",
            "description": "The total number of results which matches the query.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishedInterest"
            },
            "description": "The list of items found for the specified page (by requested skip and take).",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for navigating through the paginated result.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Paginated search result with HATEOAS Links."
      },
      "PublishedInterestVersion": {
        "type": "object",
        "properties": {
          "summary": {
            "type": "string",
            "description": "Title Summary for the interest as at this publication.",
            "nullable": true
          },
          "registrationDate": {
            "type": "string",
            "description": "Registration Date on the published interest as at this publication.",
            "format": "date",
            "nullable": true
          },
          "publishedDate": {
            "type": "string",
            "description": "Date when this version of interest was first published.",
            "format": "date",
            "nullable": true
          },
          "updatedDates": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "date"
            },
            "description": "A list of dates on which this version of interest was updated since it has been published.",
            "nullable": true
          },
          "rectified": {
            "type": "boolean",
            "description": "Whether the version has been rectified (e.g. when the interest was submitted late)."
          },
          "rectifiedDetails": {
            "type": "string",
            "description": "The reason that the version was rectified, or `null` if this version was not rectified.",
            "nullable": true
          },
          "register": {
            "$ref": "#/components/schemas/PublishedRegister"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Field"
            },
            "description": "List of fields which are available for a member to add further information about this version.",
            "nullable": true
          },
          "displayInformation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DisplayInformation"
            },
            "description": "Display information for rendering this version in members web.",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for retrieving related information about this version.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Published version of the interest"
      },
      "PublishedRegister": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID of the register.",
            "format": "int32"
          },
          "publishedDate": {
            "type": "string",
            "description": "Date when the Register was published.",
            "format": "date"
          },
          "type": {
            "$ref": "#/components/schemas/RegisterType"
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for retrieving related information about this register.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A published version of a register of interests."
      },
      "PublishedRegisterApiLinkedSearchResult": {
        "type": "object",
        "properties": {
          "skip": {
            "type": "integer",
            "description": "The skip value that was used in the query.",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "description": "The take value that was used in the query.",
            "format": "int32"
          },
          "totalResults": {
            "type": "integer",
            "description": "The total number of results which matches the query.",
            "format": "int32"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishedRegister"
            },
            "description": "The list of items found for the specified page (by requested skip and take).",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of HATEOAS Links for navigating through the paginated result.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Paginated search result with HATEOAS Links."
      },
      "RegisterDocument": {
        "enum": [
          "Full",
          "Updated"
        ],
        "type": "string",
        "description": "Whether a document contains the full register or only updates"
      },
      "RegisterType": {
        "enum": [
          "Commons",
          "CommonsStaff"
        ],
        "type": "string",
        "description": "The type of register of interests"
      },
      "Registrant": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/RegistrantType"
          },
          "memberStaffDetail": {
            "$ref": "#/components/schemas/MemberStaffInfo"
          },
          "memberDetail": {
            "$ref": "#/components/schemas/Member"
          }
        },
        "additionalProperties": false,
        "description": "Person who has registered the interest"
      },
      "RegistrantType": {
        "enum": [
          "Member",
          "MemberStaff"
        ],
        "type": "string",
        "description": "Type of the person who has registered the interest\r\nMore options may be added in the future."
      }
    }
  }
}