openapi: 3.0.0
info:
  description: |
    # Introduction
    The Business Registries API is built on HTTP. The API is RESTful. It has predictable resource URIs.

      The API is documented in <a target="_blank" href="https://github.com/OAI/OpenAPI-Specification">OpenAPI</a> format.
      In addition to the standard OpenAPI syntax we use a few
      <a target="_blank" href="https://github.com/Rebilly/ReDoc/blob/master/docs/redoc-vendor-extensions.md">vendor extensions</a>.

    # Overview
    The following sections describe the resources that make up the Business Registries REST API.
    ## Current Version
    By default, all requests to https://api.abr.ato.gov.au receive the `v1` version of the REST API. We encourage you to explicitly request this version via the `Accept` header.

        Accept: application/vnd.abr-ato.v1+json

    ## Schema
    All API access is over HTTPS, and accessed from https://api.abr.ato.gov.au. All data is sent and received as JSON. Blank fields are included.

      All dates use the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format:

        YYYY-MM-DD

      For example: `2017-07-01` (the 1st of July 2017)

      All timestamps use the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format:

        YYYY-MM-DDTHH:MM:SSZ

      For example: `2017-07-01T11:05:06+10:00`

    ## Timezones
    Some requests allow for specifying timestamps or generate timestamps with time zone information. We apply the following rules, in order of priority, to determine timezone information for API calls.
    ### Explicitly provide an ISO 8601 timestamp with timezone information
    For API calls that allow for a timestamp to be specified, we use that exact timestamp.

      For example: `2017-07-01T11:05:06+10:00`

    ## Pagination
    Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.

      For example:

        Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
              <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

    `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
    ## Parameters
    Many API methods take optional parameters:

        GET /individuals/1234/addresses/?addressType='Mailing'

    In this example, the '1234' value is provided for the `:partyId` parameter in the path while `:addressType` is passed in the query string.
    For POST, PATCH, PUT, and DELETE requests, parameters not included in the URL should be encoded as JSON with a Content-Type of 'application/json'.
    ## Metadata
    The API provides **metadata services** that you can use to discover information about the classifcation schemes and values used by the Registry.

      For example:

        GET /classifications/roles

      Sample response:

        [
          {
            "id": "123e4567-e89b-12d3-a456-426655440001",
            "role": "Director",
            "roleDescription": "An individual responsible for managing a company's ...",
            "relationship": "Directorship",
            "reciprocalRole": "Company",
            "reciprocalRoleDescription": "An incorporated legal entity."
          },
          {
            ...
          }
        ]

    ## Root Endpoint
    You can issue a GET request to the root endpoint (also known as the service root) to get all the endpoint categories that the REST API supports:

        curl https://api.abr.ato.gov.au

    ## Authentication
    The Business Registries API supports API Key authentication.

      When you sign up for an account, you are given your first API key. You can generate additional API keys, and delete
      API keys (as you may need to rotate your keys in the future). You authenticate to the Business Registries API by
      providing your secret key in the request header.

      **Note:** Some requests will return `404 Not Found`, instead of `403 Permission Denied`. This is to prevent the
      accidental leakage of information to unauthorised users.
  license:
    name: Creative Commons Attribution 3.0 Australia
    url: https://creativecommons.org/licenses/by/3.0/au/
  termsOfService: https://ato.gov.au/terms-of-service/
  title: Business Registries
  version: 0.0.6
  x-apisguru-categories:
    - financial
  x-logo:
    backgroundColor: "#D3D3D3"
    url: https://www.ato.gov.au/uploadedImages/Content/_DEM/Images/logo-ato.png
  x-origin:
    - format: swagger
      url: https://ato-team.github.io/business-registries-rest-api-specification/swagger.yaml
      version: "2.0"
  x-providerName: ato.gov.au
tags:
  - description: |
      An individual is a person about whom the registry wishes to maintain information.

        For example, the individual's date and place of birth (for the purposes of identification) and the individual's
        residential address (which is used for administrative purposes).
    name: Individuals
  - description: |
      A role defines the characteristics of a relationship between parties.
      An Individual can participate in a relationship with other individuals and organisations.

      For example:

      | Party         | Role           | Relationship     | Role          | Party                           |
      | ------------- | -------------- | ---------------- | ------------- | ------------------------------- |
      | Homer Simpson | Husband        | Marriage         | Wife          | Marge Simpson                   |
      | Homer Simpson | Employee       | Employment       | Employer      | Springfield Nuclear Power Plant |
      | Homer Simpson | Safety Officer | Colleague        | Supervisor    | Carl Carlson                    |
      | Homer Simpson | Director       | Directorship     | Company       | Compu Global Hyper Mega Net     |
      | Homer Simpson | Employee       | Employment       | Employer      | Compu Global Hyper Mega Net     |
      | Homer Simpson | Member         | Membership       | Organisation  | The Stonecutters                |
      | Homer Simpson | Partner        | Partnership      | Partnership   | The Be Sharps                   |
      | Homer Simpson | Trustee        | Trusteeship      | Trust         | The Simpson Family Trust        |
      | Homer Simpson | Member         | Membership       | Association   | Mensa International             |

      You can use the API's **metadata services** to retrieve information about the classifcation schemes and
      values used by the Registry.
    name: Individuals Roles
  - description: |
      The registry maintains information about an individual's contact details for administrative purposes.

        Including:
        - an address for the service of documents
        - a principal place of business address
    name: Individuals Addresses
  - description: |
      The registry maintains information about an individual's contact details for administrative purposes.

        Including:
        - an email address
        - a mobile number
    name: Individuals Electronic Addresses
  - description: |
      A business name is a name or title under which a person conducts a business.
    name: Individuals Business Names
  - description: |
      If you carry on a business you may need to hold a licence.

        For example, if you provide financial services, you are required to hold an Australian Financial
        Services (AFS) licence.
    name: Individuals Licenses
  - description: |
      An organisation usually consists of a number of individuals or groups bound by a common purpose about whom the
      registry wishes to maintain information.

        For example, the organisation's legal entity type (e.g., Incorporated Entity, Unincorporated Entity,
        Partnership or Joint Venture).
    name: Organisations
  - description: |
      A role defines the characteristics of a relationship between parties.
      An Organisation can participate in a relationship with other organisations and indiviuals.

      For example:

      | Party                           | Role     | Relationship | Role         | Party             |
      | ------------------------------- | -------- | -------------| ------------ | ----------------- |
      | Springfield Nuclear Power Plant | Employer | Employment   | Employee     | Homer Simpson     |
      | Springfield Nuclear Power Plant | Company  | Directorship | Director     | Mr Burns          |
      | Springfield Nuclear Power Plant | Employer | Employment   | Employee     | Mr Burns          |
      | Springfield Nuclear Power Plant | Sponsor  | Sponsorship  | Organisation | The Stonecutters  |

      You can use the API's **metadata services** to retrieve information about the classifcation schemes and
      values used by the Registry.
    name: Organisations Roles
  - description: |
      The registry maintains information about an organisation's contact details for administrative purposes.

        Including:
        - an address for the service of documents
        - a principal place of business address
    name: Organisations Addresses
  - description: |
      The registry maintains information about an organisation's contact details for administrative purposes.

        Including:
        - an email address
        - a mobile number
    name: Organisations Electronic Addresses
  - description: |
      A business name is a name or title under which an organisation conducts a business.
    name: Organisations Business Names
  - description: |
      If you carry on a business you may need to hold a licence.

        For example, if you provide financial services, you are required to hold an Australian Financial
        Services (AFS) licence.
    name: Organisations Licenses
  - description: |
      A business name is a name or title under which a person or organisation conducts a business.
    name: Business Names
  - description: |
      If you carry on a business you may need to hold a licence.

        For example, if you provide financial services, you are required to hold an Australian Financial
        Services (AFS) licence.
    name: Licenses
  - description: |
      A classification scheme for business names.
    name: Business Name Lifecycle States
  - description: |
      A classification scheme for names.
    name: Name Directions
  - description: |
      A classification scheme for names.
    name: Name Prefixes
  - description: |
      A classification scheme for names.
    name: Name Types
  - description: |
      A classification scheme for addresses.
    name: Address Types
  - description: |
      A classification scheme for electronic addresses.
    name: Electronic Address Types
  - description: |
      A classification scheme for the representation of human sexes.
    name: Genders
  - description: |
      A classification scheme for parties (individuals and organisations).
    name: Legal Entity Types
  - description: |
      A classification scheme for licenses.
    name: License Lifecycle States
  - description: |
      A classification scheme for licenses.
    name: License Types
  - description: |
      A classification scheme for registered identifiers.
    name: Registered Identifier Types
  - description: |
      A classification scheme for the characteristics of relationships between parties (individuals and organisations).
    name: Roles
paths:
  /business-names:
    get:
      description: |
        Retrieve a list of business names
      parameters:
        - $ref: "#/components/parameters/apiKey"
      responses:
        "200":
          description: A list of business names was retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/business-name"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of business names
      tags:
        - Business Names
  /classifications/address-types:
    get:
      responses:
        "200":
          description: Address types were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: The address at which an individual or organisation receives letters or packages.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Mailing
                  - description: The main location where work is conducted.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Principal Place of Business
                items:
                  $ref: "#/components/schemas/address-type"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of address types
      tags:
        - Address Types
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/business-name-lifecycle-states:
    get:
      responses:
        "200":
          description: Business name lifecycle states were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: The Business Name has been approved.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Approved
                  - description: The Business Name has expired.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Expired
                  - description: The Business Name has been issued.
                    id: 123e4567-e89b-12d3-a456-426655440003
                    name: Issued
                  - description: The Business Name is pending approval.
                    id: 123e4567-e89b-12d3-a456-426655440004
                    name: Pending Approval
                  - description: The Business Name has been suspended.
                    id: 123e4567-e89b-12d3-a456-426655440005
                    name: Suspended
                items:
                  $ref: "#/components/schemas/business-name-lifecycle-state"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of business name lifecycle states
      tags:
        - Business Name Lifecycle States
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/electronic-address-types:
    get:
      responses:
        "200":
          description: Electronic address types were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: An address used to send and receive emails.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Email
                  - description: A number used to send and receive faxes.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Fax
                items:
                  $ref: "#/components/schemas/electronic-address-type"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of electronic address types
      tags:
        - Electronic Address Types
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/genders:
    get:
      responses:
        "200":
          description: Genders were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - gender: Not Known
                    id: 123e4567-e89b-12d3-a456-426655440001
                  - gender: Male
                    id: 123e4567-e89b-12d3-a456-426655440002
                  - gender: Female
                    id: 123e4567-e89b-12d3-a456-426655440003
                  - gender: Not Applicable
                    id: 123e4567-e89b-12d3-a456-426655440004
                items:
                  $ref: "#/components/schemas/gender"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of genders
      tags:
        - Genders
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/legal-entity-types:
    get:
      responses:
        "200":
          description: Legal entity types were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: If you operate as a sole trader, you're responsible for all aspects of the business, including any debts the business incurs.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Sole Trader
                  - description: A partnership is two or more individuals or organisations who do business as partners or receive income jointly.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Partnership
                  - description: A joint venture is two or more people or entities who join to do business together for a particular purpose, usually a single project, rather than as an ongoing business.
                    id: 123e4567-e89b-12d3-a456-426655440003
                    name: Joint Venture
                  - description: A company is a separate legal entity. This means it has the same rights as a natural person and can incur debt, sue and be sued.
                    id: 123e4567-e89b-12d3-a456-426655440004
                    name: Company
                  - description: A trust is an obligation imposed on a person – the trustee – to hold property or assets (e.g. business assets) for the benefit of others (known as beneficiaries).
                    id: 123e4567-e89b-12d3-a456-426655440005
                    name: Trust
                items:
                  $ref: "#/components/schemas/legal-entity-type"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of legal entity types
      tags:
        - Legal Entity Types
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/license-lifecycle-states:
    get:
      responses:
        "200":
          description: License lifecycle states were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: The License has been approved.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Approved
                  - description: The License has expired.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Expired
                  - description: The License has been issued.
                    id: 123e4567-e89b-12d3-a456-426655440003
                    name: Issued
                  - description: The License is pending approval.
                    id: 123e4567-e89b-12d3-a456-426655440004
                    name: Pending Approval
                  - description: The License has been suspended.
                    id: 123e4567-e89b-12d3-a456-426655440005
                    name: Suspended
                items:
                  $ref: "#/components/schemas/license-lifecycle-state"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of license lifecycle states
      tags:
        - License Lifecycle States
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/license-types:
    get:
      responses:
        "200":
          description: License types were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: To conduct a financial services business in Australia, you must have an Australian Financial Services (AFS) licence.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Australian Financial Services License
                  - description: To conduct a <insert-name-here> business you must have a 2B licence.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: 2B License
                items:
                  $ref: "#/components/schemas/license-type"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of license types
      tags:
        - License Types
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/name-directions:
    get:
      responses:
        "200":
          description: Name directions were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: The full name or formal salutation is rendered left to right.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: left-to-right
                  - description: The full name or formal salutation is rendered right to left.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: right-to-left
                items:
                  $ref: "#/components/schemas/name-direction"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of name directions
      tags:
        - Name Directions
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/name-prefixes:
    get:
      responses:
        "200":
          description: Name prefixes were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: A title used before a family name or formal salutation to address a man.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Mr
                  - description: A title used before a family name or formal salutation to address a woman.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Ms
                items:
                  $ref: "#/components/schemas/name-prefix"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of name prefixes
      tags:
        - Name Prefixes
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/name-types:
    get:
      responses:
        "200":
          description: Name types were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: An alternate name used by a party.
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: Alias
                  - description: The primary name used by a party.
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: Principal Name
                items:
                  $ref: "#/components/schemas/name-type"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of name types
      tags:
        - Name Types
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/registered-identifier-types:
    get:
      responses:
        "200":
          description: Registered identifier types were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - description: An Australian Business Number (ABN) is a unique eleven-character number issued by the Australian Business Register (ABR).
                    id: 123e4567-e89b-12d3-a456-426655440001
                    name: ABN
                  - description: An Australian Company Number (ACN) is a unique nine-character number issued by the Australian Securities and Investments Commission (ASIC).
                    id: 123e4567-e89b-12d3-a456-426655440002
                    name: ACN
                items:
                  $ref: "#/components/schemas/registered-identifier-type"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of registered identifier types
      tags:
        - Registered Identifier Types
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /classifications/roles:
    get:
      responses:
        "200":
          description: Roles were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                example:
                  - id: 123e4567-e89b-12d3-a456-426655440001
                    reciprocalRole: Company
                    reciprocalRoleDescription: An incorporated legal entity.
                    relationship: Directorship
                    role: Director
                    roleDescription: An individual responsible for managing a company's business activities.
                  - id: 123e4567-e89b-12d3-a456-426655440002
                    reciprocalRole: Employer
                    reciprocalRoleDescription: An individual or organisation that employs people.
                    relationship: Employment
                    role: Employee
                    roleDescription: An individual employed for wages or salary.
                items:
                  $ref: "#/components/schemas/role"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of roles
      tags:
        - Roles
    parameters:
      - $ref: "#/components/parameters/apiKey"
  /individuals:
    get:
      description: |
        Retrieve a list of individuals
      parameters:
        - $ref: "#/components/parameters/apiKey"
        - $ref: "#/components/parameters/dateOfBirth"
        - $ref: "#/components/parameters/placeOfBirth"
      responses:
        "200":
          description: A list of individuals was retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/individual"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of individuals
      tags:
        - Individuals
    post:
      description: |
        Create an individual
      parameters:
        - $ref: "#/components/parameters/apiKey"
      requestBody:
        $ref: "#/components/requestBodies/individual"
      responses:
        "201":
          description: Individual was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/individual"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create an individual
      tags:
        - Individuals
  "/individuals/{partyId}":
    delete:
      description: |
        Delete an individual with the specified identifier
      responses:
        "204":
          description: Individual was deleted
        "400":
          $ref: "#/components/responses/FailedPrecondition"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete an individual
      tags:
        - Individuals
    get:
      description: |
        Retrieve an individual with the specified identifier
      responses:
        "200":
          description: Individual was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/individual"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve an individual
      tags:
        - Individuals
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    put:
      description: |
        Update an individual
      requestBody:
        $ref: "#/components/requestBodies/individual"
      responses:
        "200":
          description: Individual was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/individual"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update an individual
      tags:
        - Individuals
  "/individuals/{partyId}/addresses":
    get:
      responses:
        "200":
          description: Addresses were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/address"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of addresses
      tags:
        - Individuals Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create an address
      requestBody:
        $ref: "#/components/requestBodies/address"
      responses:
        "201":
          description: Address was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create an address
      tags:
        - Individuals Addresses
  "/individuals/{partyId}/addresses/{addressId}":
    delete:
      description: |
        Delete an address
      responses:
        "204":
          description: Address was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete an address
      tags:
        - Individuals Addresses
    get:
      description: |
        Retrieve an address
      responses:
        "200":
          description: Address was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/address"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve an address
      tags:
        - Individuals Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/addressId"
    put:
      description: |
        Update an address
      requestBody:
        $ref: "#/components/requestBodies/address"
      responses:
        "200":
          description: Address was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update an address
      tags:
        - Individuals Addresses
  "/individuals/{partyId}/business-names":
    get:
      responses:
        "200":
          description: Business Names were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/business-name"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of business names
      tags:
        - Individuals Business Names
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create a business name
      requestBody:
        $ref: "#/components/requestBodies/business-name"
      responses:
        "201":
          description: Business Name was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/business-name"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create a business name
      tags:
        - Individuals Business Names
  "/individuals/{partyId}/business-names/{productId}":
    delete:
      description: |
        Delete a business name
      responses:
        "204":
          description: Address was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete a business name
      tags:
        - Individuals Business Names
    get:
      description: |
        Retrieve a business name
      responses:
        "200":
          description: Business Name was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/business-name"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a business name
      tags:
        - Individuals Business Names
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/productId"
    put:
      description: |
        Update a business name
      requestBody:
        $ref: "#/components/requestBodies/business-name"
      responses:
        "200":
          description: Address was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/business-name"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update a business name
      tags:
        - Individuals Business Names
  "/individuals/{partyId}/electronic-addresses":
    get:
      responses:
        "200":
          description: Electronic addresses were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/electronic-address"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of electronic addresses
      tags:
        - Individuals Electronic Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create an electronic address
      requestBody:
        $ref: "#/components/requestBodies/electronic-address"
      responses:
        "201":
          description: Electronic Address was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/electronic-address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create an electronic address
      tags:
        - Individuals Electronic Addresses
  "/individuals/{partyId}/electronic-addresses/{addressId}":
    delete:
      description: |
        Delete an electronic address
      responses:
        "204":
          description: Electronic Address was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete an electronic address
      tags:
        - Individuals Electronic Addresses
    get:
      description: |
        Retrieve an electronic address
      responses:
        "200":
          description: Electronic Address was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/electronic-address"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve an electronic address
      tags:
        - Individuals Electronic Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/addressId"
    put:
      description: |
        Update an electronic address
      requestBody:
        $ref: "#/components/requestBodies/electronic-address"
      responses:
        "200":
          description: Electronic Address was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/electronic-address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update an electronic address
      tags:
        - Individuals Electronic Addresses
  "/individuals/{partyId}/licenses":
    get:
      responses:
        "200":
          description: Licenses were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/license"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of licenses
      tags:
        - Individuals Licenses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create a license
      requestBody:
        $ref: "#/components/requestBodies/license"
      responses:
        "201":
          description: License was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/license"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create a license
      tags:
        - Individuals Licenses
  "/individuals/{partyId}/licenses/{productId}":
    delete:
      description: |
        Delete a license
      responses:
        "204":
          description: License was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete a license
      tags:
        - Individuals Licenses
    get:
      description: |
        Retrieve a license
      responses:
        "200":
          description: License was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/license"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a license
      tags:
        - Individuals Licenses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/productId"
    put:
      description: |
        Update a license
      requestBody:
        $ref: "#/components/requestBodies/license"
      responses:
        "200":
          description: License was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/license"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update a license
      tags:
        - Individuals Licenses
  "/individuals/{partyId}/roles":
    get:
      responses:
        "200":
          description: Roles were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/party-role"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of roles
      tags:
        - Individuals Roles
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create a role
      requestBody:
        $ref: "#/components/requestBodies/party-role"
      responses:
        "201":
          description: Role was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/party-role"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create a role
      tags:
        - Individuals Roles
  "/individuals/{partyId}/roles/{roleId}":
    delete:
      description: |
        Delete a role
      responses:
        "204":
          description: Role was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete a role
      tags:
        - Individuals Roles
    get:
      description: |
        Retrieve a role
      responses:
        "200":
          description: Role was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/party-role"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a role
      tags:
        - Individuals Roles
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/roleId"
    put:
      description: |
        Update a role
      requestBody:
        $ref: "#/components/requestBodies/party-role"
      responses:
        "200":
          description: Role was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/party-role"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update a role
      tags:
        - Individuals Roles
  /licenses:
    get:
      description: |
        Retrieve a list of licenses
      parameters:
        - $ref: "#/components/parameters/apiKey"
      responses:
        "200":
          description: A list of licenses was retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/license"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of licenses
      tags:
        - Licenses
  /organisations:
    get:
      description: |
        Retrieve a list of organisations
      parameters:
        - $ref: "#/components/parameters/apiKey"
        - $ref: "#/components/parameters/registeredIdentifier"
        - $ref: "#/components/parameters/identifier"
      responses:
        "200":
          description: A list of organisations was retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/organisation"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of organisations
      tags:
        - Organisations
    post:
      description: |
        Create an organisation
      parameters:
        - $ref: "#/components/parameters/apiKey"
      requestBody:
        $ref: "#/components/requestBodies/organisation"
      responses:
        "201":
          description: Organisation was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/organisation"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create an organisation
      tags:
        - Organisations
  "/organisations/{partyId}":
    delete:
      description: |
        Delete an organisation with the specified identifier
      responses:
        "204":
          description: Organisation was deleted
        "400":
          $ref: "#/components/responses/FailedPrecondition"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete an organisation
      tags:
        - Organisations
    get:
      description: |
        Retrieve an organisation with the specified identifier
      responses:
        "200":
          description: Individual was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/organisation"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve an organisation
      tags:
        - Organisations
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    put:
      description: |
        Update an organisation
      requestBody:
        $ref: "#/components/requestBodies/organisation"
      responses:
        "200":
          description: Organisation was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/organisation"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update an organisation
      tags:
        - Organisations
  "/organisations/{partyId}/addresses":
    get:
      responses:
        "200":
          description: Addresses were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/address"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of addresses
      tags:
        - Organisations Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create an address
      requestBody:
        $ref: "#/components/requestBodies/address"
      responses:
        "201":
          description: Address was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create an address
      tags:
        - Organisations Addresses
  "/organisations/{partyId}/addresses/{addressId}":
    delete:
      description: |
        Delete an address
      responses:
        "204":
          description: Address was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete an address
      tags:
        - Organisations Addresses
    get:
      description: |
        Retrieve an address
      responses:
        "200":
          description: Address was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/address"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve an address
      tags:
        - Organisations Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/addressId"
    put:
      description: |
        Update an address
      requestBody:
        $ref: "#/components/requestBodies/address"
      responses:
        "200":
          description: Address was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update an address
      tags:
        - Organisations Addresses
  "/organisations/{partyId}/business-names":
    get:
      responses:
        "200":
          description: Business Names were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/business-name"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of business names
      tags:
        - Organisations Business Names
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create a business name
      requestBody:
        $ref: "#/components/requestBodies/business-name"
      responses:
        "201":
          description: Business Name was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/business-name"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create a business name
      tags:
        - Organisations Business Names
  "/organisations/{partyId}/business-names/{productId}":
    delete:
      description: |
        Delete a business name
      responses:
        "204":
          description: Address was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete a business name
      tags:
        - Organisations Business Names
    get:
      description: |
        Retrieve a business name
      responses:
        "200":
          description: Business Name was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/business-name"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a business name
      tags:
        - Organisations Business Names
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/productId"
    put:
      description: |
        Update a business name
      requestBody:
        $ref: "#/components/requestBodies/business-name"
      responses:
        "200":
          description: Address was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/business-name"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update a business name
      tags:
        - Organisations Business Names
  "/organisations/{partyId}/electronic-addresses":
    get:
      responses:
        "200":
          description: Electronic addresses were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/electronic-address"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of electronic addresses
      tags:
        - Organisations Electronic Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create an electronic address
      requestBody:
        $ref: "#/components/requestBodies/electronic-address"
      responses:
        "201":
          description: Electronic Address was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/electronic-address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create an electronic address
      tags:
        - Organisations Electronic Addresses
  "/organisations/{partyId}/electronic-addresses/{addressId}":
    delete:
      description: |
        Delete an electronic address
      responses:
        "204":
          description: Electronic Address was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete an electronic address
      tags:
        - Organisations Electronic Addresses
    get:
      description: |
        Retrieve an electronic address
      responses:
        "200":
          description: Electronic address was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/electronic-address"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve an electronic address
      tags:
        - Organisations Electronic Addresses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/addressId"
    put:
      description: |
        Update an electronic address
      requestBody:
        $ref: "#/components/requestBodies/electronic-address"
      responses:
        "200":
          description: Electronic Address was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/electronic-address"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update an electronic address
      tags:
        - Organisations Electronic Addresses
  "/organisations/{partyId}/licenses":
    get:
      responses:
        "200":
          description: Licenses were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/license"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of licenses
      tags:
        - Organisations Licenses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create a license
      requestBody:
        $ref: "#/components/requestBodies/license"
      responses:
        "201":
          description: License was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/license"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create a license
      tags:
        - Organisations Licenses
  "/organisations/{partyId}/licenses/{productId}":
    delete:
      description: |
        Delete a license
      responses:
        "204":
          description: License was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete a license
      tags:
        - Organisations Licenses
    get:
      description: |
        Retrieve a license
      responses:
        "200":
          description: License was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/license"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a license
      tags:
        - Organisations Licenses
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/productId"
    put:
      description: |
        Update a license
      requestBody:
        $ref: "#/components/requestBodies/license"
      responses:
        "200":
          description: License was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/license"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update a license
      tags:
        - Organisations Licenses
  "/organisations/{partyId}/roles":
    get:
      responses:
        "200":
          description: Roles were retrieved successfully
          headers:
            Link:
              description: |
                Information about pagination is provided in the [Link](https://tools.ietf.org/html/rfc5988#page-6) header.
                For example:

                    Link: <https://api.abr.ato.gov.au/individuals?page=2>; rel="next",
                          <https://api.abr.ato.gov.au/individuals?page=34>; rel="last"

                `rel="next"` states that the next page is `page=2`. This makes sense, since by default, all paginated queries start at page `1`. `rel="last"` provides some more information, stating that the last page of results is on `page 34`. Accordingly, we have 33 more pages of information that we can consume.
              schema:
                type: string
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/party-role"
                type: array
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a list of roles
      tags:
        - Organisations Roles
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
    post:
      description: |
        Create a role
      requestBody:
        $ref: "#/components/requestBodies/party-role"
      responses:
        "201":
          description: Role was created
          headers:
            Location:
              description: |
                A [Location](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30) header pointing to the location of the new resource.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/party-role"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
      summary: Create a role
      tags:
        - Organisations Roles
  "/organisations/{partyId}/roles/{roleId}":
    delete:
      description: |
        Delete a role
      responses:
        "204":
          description: Role was deleted
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Delete a role
      tags:
        - Organisations Roles
    get:
      description: |
        Retrieve a role
      responses:
        "200":
          description: Role was retrieved successfully
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/party-role"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Retrieve a role
      tags:
        - Organisations Roles
    parameters:
      - $ref: "#/components/parameters/apiKey"
      - $ref: "#/components/parameters/partyId"
      - $ref: "#/components/parameters/roleId"
    put:
      description: |
        Update a role
      requestBody:
        $ref: "#/components/requestBodies/party-role"
      responses:
        "200":
          description: Role was updated
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/party-role"
        "400":
          $ref: "#/components/responses/InvalidArgument"
        "401":
          $ref: "#/components/responses/Unauthenticated"
        "404":
          $ref: "#/components/responses/NotFound"
      summary: Update a role
      tags:
        - Organisations Roles
x-tagGroups:
  - name: Individuals Details
    tags:
      - Individuals
      - Individuals Roles
  - name: Individuals Contact Details
    tags:
      - Individuals Addresses
      - Individuals Electronic Addresses
  - name: Individuals Products
    tags:
      - Individuals Business Names
      - Individuals Licenses
  - name: Organisations Details
    tags:
      - Organisations
      - Organisations Roles
  - name: Organisations Contact Details
    tags:
      - Organisations Addresses
      - Organisations Electronic Addresses
  - name: Organisations Products
    tags:
      - Organisations Business Names
      - Organisations Licenses
  - name: Products & Services
    tags:
      - Business Names
      - Licenses
  - name: Metadata
    tags:
      - Business Name Lifecycle States
      - Name Directions
      - Name Prefixes
      - Name Types
      - Address Types
      - Electronic Address Types
      - Genders
      - Legal Entity Types
      - License Lifecycle States
      - License Types
      - Registered Identifier Types
      - Roles
servers:
  - description: Production API Server
    url: //api.abr.ato.gov.au/
  - description: Sandbox API Server
    url: //api.sandbox.abr.ato.gov.au/
components:
  parameters:
    addressId:
      description: The address identifier.
      in: path
      name: addressId
      required: true
      schema:
        type: string
    apiKey:
      description: The API key.
      in: header
      name: apiKey
      required: true
      schema:
        type: string
    dateOfBirth:
      description: The individual's date of birth, for example, `1979-01-13` (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format).
      in: query
      name: dateOfBirth
      required: false
      schema:
        type: string
    identifier:
      description: The identifier, for example, `123456789`.
      in: query
      name: identifier
      required: false
      schema:
        type: string
    partyId:
      description: The party identifier.
      in: path
      name: partyId
      required: true
      schema:
        type: string
    placeOfBirth:
      description: The individual's place of birth, for example, `Tamworth`.
      in: query
      name: placeOfBirth
      required: false
      schema:
        type: string
    productId:
      description: The product identifier.
      in: path
      name: productId
      required: true
      schema:
        type: string
    registeredIdentifier:
      description: The registered identifier, for example, `ACN` or `ABN`.
      in: query
      name: registeredIdentifier
      required: false
      schema:
        type: string
    roleId:
      description: The role identifier.
      in: path
      name: roleId
      required: true
      schema:
        type: string
  responses:
    FailedPrecondition:
      description: Request can not be executed in the current system state
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/failed-precondition"
    InvalidArgument:
      description: The client specified an invalid argument
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/invalid-argument"
    NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/not-found"
    PermissionDenied:
      description: The client does not have sufficient permission
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/permission-denied"
    Unauthenticated:
      description: Request not authenticated due to missing, invalid, or expired token
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/unauthenticated"
  requestBodies:
    license:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/license"
      description: License resource
      required: true
    individual:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/individual"
      description: Individual resource
      required: true
    address:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/address"
      description: Address resource
      required: true
    business-name:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/business-name"
      description: Business Name resource
      required: true
    electronic-address:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/electronic-address"
      description: Electronic Address resource
      required: true
    party-role:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/party-role"
      description: Role resource
      required: true
    organisation:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/organisation"
      description: Organisation resource
      required: true
  schemas:
    address:
      description: The Address resource.
      properties:
        city:
          description: The city.
          example: Canberra
          type: string
        country:
          description: The country.
          example: Australia
          type: string
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/addressId"
          description: The resource's unique identifier.
          readOnly: true
        line1:
          description: The address line 1.
          example: Level 7
          type: string
        line2:
          description: The address line 2.
          example: 21 Genge Street
          type: string
        line3:
          description: The address line 3.
          example: ""
          type: string
        name:
          description: The address name.
          example: Kembery Building
          type: string
        postalCode:
          description: The postal code.
          example: "2601"
          type: string
        suburb:
          description: The suburb.
          example: Civic
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      type: object
    address-type:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    addressId:
      allOf:
        - $ref: "#/components/schemas/resourceId"
        - type: string
    business-name:
      description: The Business Name resource.
      properties:
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        lifecycleState:
          default: Pending Approval
          description: The business name's lifecycle state.
          enum:
            - Approved
            - Expired
            - Issued
            - Pending Approval
            - Suspended
          type: string
        name:
          description: The business name.
          example: XYZ Technology Ventures
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      type: object
    business-name-lifecycle-state:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    electronic-address:
      description: The Electronic Address resource.
      properties:
        areaCode:
          description: The area code, for example, "02".
          example: "02"
          type: string
        countryPrefix:
          description: The country prefix, for example, "61".
          example: "61"
          type: string
        electronicAddressType:
          default: Landline
          description: The electronic address type.
          enum:
            - Email
            - Fax
            - Landline
            - Mobile
            - Website
          type: string
        email:
          description: The email address, for example, "robert.ferguson@ato.gov.au".
          example: ""
          type: string
        extension:
          description: The extension number, for example, "4453".
          example: ""
          type: string
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/addressId"
          description: The resource's unique identifier.
          readOnly: true
        number:
          description: The number, for example, "62164453".
          example: "62164453"
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
        url:
          description: The website address, for example, "https://ato.gov.au".
          example: ""
          type: string
      type: object
    electronic-address-type:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    error-details:
      properties:
        code:
          description: The error code.
          example: NullValue
          type: string
        message:
          description: The error message.
          example: Family name must not be null
          type: string
        target:
          description: The error target.
          example: familyName
          type: string
      type: object
    failed-precondition:
      properties:
        code:
          description: The error code.
          example: "400"
          type: string
        details:
          items:
            $ref: "#/components/schemas/error-details"
          type: array
        message:
          description: The error message.
          example: Request can not be executed in the current system state
          type: string
        status:
          description: The error status.
          example: FAILED_PRECONDITION
          type: string
      type: object
    gender:
      description: The Gender resource.
      properties:
        gender:
          description: The gender.
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
      type: object
    individual:
      description: The Individual resource.
      properties:
        addresses:
          items:
            $ref: "#/components/schemas/individual-address"
          type: array
        dateOfBirth:
          description: The individual's date of birth, for example, `1979-01-13` (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format).
          example: 1979-01-13
          format: date
          type: string
        electronicAddresses:
          items:
            $ref: "#/components/schemas/electronic-address"
          type: array
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        gender:
          default: Male
          description: The individual's gender.
          enum:
            - Female
            - Male
            - Not Applicable
            - Not Known
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/partyId"
          description: The party's unique identifier.
          readOnly: true
        names:
          items:
            $ref: "#/components/schemas/individual-name"
          type: array
        placeOfBirth:
          description: The individual's place of birth, for example, `Tamworth`.
          example: Tamworth
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      required:
        - dateOfBirth
        - placeOfBirth
      type: object
    individual-address:
      allOf:
        - $ref: "#/components/schemas/address"
        - properties:
            addressType:
              default: Principal Place of Residence
              description: The address type.
              enum:
                - Mailing
                - Principal Place of Business
                - Principal Place of Residence
              type: string
            fromDate:
              description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
              example: 1979-01-13T09:05:06+10:00
              format: date-time
              readOnly: true
              type: string
            toDate:
              description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
              example: ""
              format: date-time
              readOnly: true
              type: string
          type: object
    individual-name:
      description: The Individual Name resource.
      properties:
        direction:
          default: left-to-right
          description: The direction used to render the individual's name.
          enum:
            - left-to-right
            - right-to-left
          type: string
        familyName:
          description: The individual's family name.
          example: Ferguson
          type: string
        formalSalutation:
          description: The individual's formal salutation, for example, "Mr William Smith".
          example: Mr Robert Ferguson
          type: string
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        givenName:
          description: The individual's given name.
          example: Robert
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        informalSalutation:
          description: The individual's informal salutation, for example, "Bill".
          example: Rob
          type: string
        middleName:
          description: The individual's middle name.
          example: James
          type: string
        namePrefix:
          default: Mr
          description: The individual's name prefix.
          enum:
            - Mr
            - Ms
          type: string
        nameSuffix:
          description: The individual's name suffix, for example, "Jr" or "Sr".
          example: ""
          type: string
        nameType:
          default: Principal Name
          description: The name type.
          enum:
            - Alias
            - Principal Name
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      type: object
    invalid-argument:
      properties:
        code:
          description: The error code.
          example: "400"
          type: string
        details:
          items:
            $ref: "#/components/schemas/error-details"
          type: array
        message:
          description: The error message.
          example: The client specified an invalid argument
          type: string
        status:
          description: The error status.
          example: INVALID_ARGUMENT
          type: string
      type: object
    legal-entity-type:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    license:
      description: The License resource.
      properties:
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        licenseType:
          default: Australian Financial Services License
          description: The license type.
          enum:
            - Australian Financial Services License
            - License 2B
          type: string
        lifecycleState:
          default: Pending Approval
          description: The business name's lifecycle state.
          enum:
            - Approved
            - Expired
            - Issued
            - Pending Approval
            - Suspended
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      type: object
    license-lifecycle-state:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    license-type:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    name-direction:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    name-prefix:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    name-type:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    not-found:
      properties:
        code:
          description: The error code.
          example: "404"
          type: string
        details:
          items:
            $ref: "#/components/schemas/error-details"
          type: array
        message:
          description: The error message.
          example: The specified resource was not found
          type: string
        status:
          description: The error status.
          example: NOT_FOUND
          type: string
      type: object
    organisation:
      description: The Organisation resource.
      properties:
        addresses:
          items:
            $ref: "#/components/schemas/organisation-address"
          type: array
        electronicAddresses:
          items:
            $ref: "#/components/schemas/electronic-address"
          type: array
        establishmentDate:
          description: The organisation's establishment date, for example, `1928-03-03` (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format).
          example: 1928-03-03
          format: date
          type: string
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/partyId"
          description: The party's unique identifier.
          readOnly: true
        legalEntityType:
          default: Company
          description: The organisation's legal entity type.
          enum:
            - Company
            - Partnership
            - Trust
            - Joint Venture
          type: string
        names:
          items:
            $ref: "#/components/schemas/organisation-name"
          type: array
        registeredIdentifiers:
          items:
            $ref: "#/components/schemas/registered-identifier"
          type: array
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      required:
        - legalEntityType
        - establishmentDate
      type: object
    organisation-address:
      allOf:
        - $ref: "#/components/schemas/address"
        - properties:
            addressType:
              default: Principal Place of Business
              description: The address type.
              enum:
                - Mailing
                - Principal Place of Business
              type: string
            fromDate:
              description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
              example: 1979-01-13T09:05:06+10:00
              format: date-time
              readOnly: true
              type: string
            toDate:
              description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
              example: ""
              format: date-time
              readOnly: true
              type: string
          type: object
    organisation-name:
      description: The Organisation Name resource.
      properties:
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1928-03-03T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        name:
          description: The organisation's name.
          example: 321 Technology Ventures
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      type: object
    party-role:
      description: The Party Role resource.
      properties:
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 2016-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/roleId"
          description: The resource's unique identifier.
          readOnly: true
        partyRoleType:
          default: Employee
          description: The party's role type.
          enum:
            - Director
            - Employee
            - Member
            - Partner
            - Trustee
          type: string
        relatedPartyId:
          allOf:
            - $ref: "#/components/schemas/partyId"
          description: The related party's unique identifier.
        relatedPartyRoleType:
          default: Employer
          description: The related party's role type.
          enum:
            - Association
            - Company
            - Employer
            - Organisation
            - Partnership
            - Trust
          type: string
        relationshipType:
          default: Employment
          description: The relationship type.
          enum:
            - Directorship
            - Employment
            - Membership
            - Partnership
            - Trusteeship
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      required:
        - relatedPartyId
        - relationshipType
      type: object
    partyId:
      allOf:
        - $ref: "#/components/schemas/resourceId"
        - type: string
    permission-denied:
      properties:
        code:
          description: The error code.
          example: "403"
          type: string
        details:
          items:
            $ref: "#/components/schemas/error-details"
          type: array
        message:
          description: The error message.
          example: The client does not have sufficient permission
          type: string
        status:
          description: The error status.
          example: PERMISSION_DENIED
          type: string
      type: object
    registered-identifier:
      description: The Registered Identifier resource.
      properties:
        fromDate:
          description: The date and time the resource became active in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: 1979-01-13T09:05:06+10:00
          format: date-time
          readOnly: true
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        identifier:
          description: The registered identifier.
          example: "123456789"
          type: string
        identifierType:
          default: ACN
          description: The registered identifier type.
          enum:
            - ACN
            - ABN
          type: string
        toDate:
          description: The date and time the resource became inactive in the format defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601).
          example: ""
          format: date-time
          readOnly: true
          type: string
      type: object
    registered-identifier-type:
      allOf:
        - $ref: "#/components/schemas/type"
        - type: object
    resourceId:
      description: The resource ID. Defaults to UUID v4
      example: 123e4567-e89b-12d3-a456-426655440000
      maxLength: 36
      type: string
    role:
      description: The Role Type resource.
      properties:
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        reciprocalRole:
          description: The reciprocal role name.
          type: string
        reciprocalRoleDescription:
          description: The reciprocal role description.
          type: string
        relationship:
          description: The relationship name.
          type: string
        role:
          description: The role name.
          type: string
        roleDescription:
          description: The role description.
          type: string
      type: object
    roleId:
      allOf:
        - $ref: "#/components/schemas/resourceId"
        - type: string
    type:
      description: The Type resource.
      properties:
        description:
          description: The scheme value description.
          type: string
        id:
          allOf:
            - $ref: "#/components/schemas/resourceId"
          description: The resource's unique identifier.
          readOnly: true
        name:
          description: The scheme value.
          type: string
      type: object
    unauthenticated:
      properties:
        code:
          description: The error code.
          example: "401"
          type: string
        details:
          $ref: "#/components/schemas/error-details"
        message:
          description: The error message.
          example: Request not authenticated due to missing, invalid, or expired token
          type: string
        status:
          description: The error status.
          example: UNAUTHENTICATED
          type: string
      type: object
