{
  "openapi" : "3.0.3",
  "info" : {
    "contact" : {
      "email" : "contact@consumerdatastandards.gov.au",
      "name" : "Consumer Data Standards",
      "url" : "https://consumerdatastandards.gov.au"
    },
    "description" : "Consumer Data Standards APIs created by the Data Standards Body (DSB), with the Data Standards Chair as the decision maker to meet the needs of the Consumer Data Right",
    "license" : {
      "name" : "MIT License",
      "url" : "https://opensource.org/licenses/MIT"
    },
    "title" : "CDR Common API",
    "version" : "1.24.0"
  },
  "servers" : [ {
    "url" : "https://data.holder.com.au/cds-au/v1"
  } ],
  "paths" : {
    "/common/customer" : {
      "get" : {
        "description" : "Obtain basic information on the customer that has authorised the current session\n\n### Conventions\nIn the customer payloads relevant conventions are explained here, in one place.\n\n#### Given Names\n\n`firstName` represents the first of a person's given names.\n\n`middleNames` represents a collection of given names if the person has more than one given name.\n\nWhere a data holder holds a person's given names as a single string in source systems, it may not possible in some situations to reliably split these given names into their component first and middle names. In these situations, data holders MAY use the `firstName` field to return the single string of given names and an empty `middleNames` array.\n\nFor example, a person whose given names are \"John Paul Winston\" but the data holder cannot determine what is the first name, can return `\"firstName\": \"John Paul Winston\"`.",
        "operationId" : "getCustomer",
        "parameters" : [ {
          "description" : "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-interaction-id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-R-Draft]](#nref-FAPI-R-Draft)**.  Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-auth-date",
          "required" : false,
          "schema" : {
            "type" : "string",
            "x-conditional" : true
          },
          "style" : "simple",
          "x-conditional" : true
        }, {
          "description" : "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-customer-ip-address",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls.  Not required for unattended or unauthenticated calls.",
          "explode" : false,
          "in" : "header",
          "name" : "x-cds-client-headers",
          "required" : false,
          "schema" : {
            "type" : "string",
            "x-conditional" : true,
            "x-cds-type" : "Base64"
          },
          "style" : "simple",
          "x-conditional" : true,
          "x-cds-type" : "Base64"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseCommonCustomer"
                }
              }
            },
            "description" : "Success",
            "headers" : {
              "x-v" : {
                "description" : "The [version](#response-headers) of the API end point that the data holder has responded with.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              },
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          }
        },
        "summary" : "Get Customer",
        "tags" : [ "Common", "Customer" ],
        "x-scopes" : [ "common:customer.basic:read" ],
        "x-version" : "1"
      }
    },
    "/common/customer/detail" : {
      "get" : {
        "description" : "Obtain detailed information on the authorised customer within the current session.\n\nObsolete versions: [v1](includes/obsolete/get-customer-detail-v1.html)",
        "operationId" : "getCustomerDetail",
        "parameters" : [ {
          "description" : "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-interaction-id",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-R-Draft]](#nref-FAPI-R-Draft)**.  Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-auth-date",
          "required" : false,
          "schema" : {
            "type" : "string",
            "x-conditional" : true
          },
          "style" : "simple",
          "x-conditional" : true
        }, {
          "description" : "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.",
          "explode" : false,
          "in" : "header",
          "name" : "x-fapi-customer-ip-address",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls.  Not required for unattended or unauthenticated calls.",
          "explode" : false,
          "in" : "header",
          "name" : "x-cds-client-headers",
          "required" : false,
          "schema" : {
            "type" : "string",
            "x-conditional" : true,
            "x-cds-type" : "Base64"
          },
          "style" : "simple",
          "x-conditional" : true,
          "x-cds-type" : "Base64"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseCommonCustomerDetailV2"
                }
              }
            },
            "description" : "Success",
            "headers" : {
              "x-v" : {
                "description" : "The [version](#response-headers) of the API end point that the data holder has responded with.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              },
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>",
            "headers" : {
              "x-fapi-interaction-id" : {
                "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          }
        },
        "summary" : "Get Customer Detail",
        "tags" : [ "Common", "Customer" ],
        "x-scopes" : [ "common:customer.detail:read" ],
        "x-version" : "2"
      }
    },
    "/discovery/status" : {
      "get" : {
        "description" : "Obtain a health check status for the implementation",
        "operationId" : "getStatus",
        "parameters" : [ {
          "description" : "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseCommonDiscoveryStatus"
                }
              }
            },
            "description" : "Success",
            "headers" : {
              "x-v" : {
                "description" : "The [version](#response-headers) of the API end point that the data holder has responded with.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>"
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>"
          }
        },
        "summary" : "Get Status",
        "tags" : [ "Common", "Discovery" ],
        "x-version" : "1"
      }
    },
    "/discovery/outages" : {
      "get" : {
        "description" : "Obtain a list of scheduled outages for the implementation",
        "operationId" : "getOutages",
        "parameters" : [ {
          "description" : "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)",
          "explode" : false,
          "in" : "header",
          "name" : "x-v",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.",
          "explode" : false,
          "in" : "header",
          "name" : "x-min-v",
          "required" : false,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseDiscoveryOutagesList"
                }
              }
            },
            "description" : "Success",
            "headers" : {
              "x-v" : {
                "description" : "The [version](#response-headers) of the API end point that the data holder has responded with.",
                "explode" : false,
                "schema" : {
                  "type" : "string"
                },
                "style" : "simple"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[400 - Invalid Field](#error-400-field-invalid)</li><li>[400 - Invalid Version](#error-400-header-invalid-version)</li></ul>"
          },
          "406" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ResponseErrorListV2"
                }
              }
            },
            "description" : "The following error codes MUST be supported:<br/><ul class=\"error-code-list\"><li>[406 - Unsupported Version](#error-406-header-unsupported-version)</li></ul>"
          }
        },
        "summary" : "Get Outages",
        "tags" : [ "Common", "Discovery" ],
        "x-version" : "1"
      }
    }
  },
  "components" : {
    "parameters" : {
      "RequestHeader_x-v" : {
        "description" : "Version of the API end point requested by the client. Must be set to a positive integer. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If the value of [x-min-v](#request-headers) is equal to or higher than the value of [x-v](#request-headers) then the [x-min-v](#request-headers) header should be treated as absent. If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable. See [HTTP Headers](#request-headers)",
        "explode" : false,
        "in" : "header",
        "name" : "x-v",
        "required" : true,
        "schema" : {
          "type" : "string"
        },
        "style" : "simple"
      },
      "RequestHeader_x-min-v" : {
        "description" : "Minimum version of the API end point requested by the client. Must be set to a positive integer if provided. The data holder should respond with the highest supported version between [x-min-v](#request-headers) and [x-v](#request-headers). If all versions requested are not supported then the data holder must respond with a 406 Not Acceptable.",
        "explode" : false,
        "in" : "header",
        "name" : "x-min-v",
        "required" : false,
        "schema" : {
          "type" : "string"
        },
        "style" : "simple"
      },
      "RequestHeader_x-fapi-interaction-id" : {
        "description" : "An **[[RFC4122]](#nref-RFC4122)** UUID used as a correlation id. If provided, the data holder must play back this value in the x-fapi-interaction-id response header. If not provided a **[[RFC4122]](#nref-RFC4122)** UUID value is required to be provided in the response header to track the interaction.",
        "explode" : false,
        "in" : "header",
        "name" : "x-fapi-interaction-id",
        "required" : false,
        "schema" : {
          "type" : "string"
        },
        "style" : "simple"
      },
      "RequestHeader_x-fapi-auth-date" : {
        "description" : "The time when the customer last logged in to the Data Recipient Software Product as described in **[[FAPI-R-Draft]](#nref-FAPI-R-Draft)**.  Required for all resource calls (customer present and unattended). Not required for unauthenticated calls.",
        "explode" : false,
        "in" : "header",
        "name" : "x-fapi-auth-date",
        "required" : false,
        "schema" : {
          "type" : "string",
          "x-conditional" : true
        },
        "style" : "simple",
        "x-conditional" : true
      },
      "RequestHeader_x-fapi-customer-ip-address" : {
        "description" : "The customer's original IP address if the customer is currently logged in to the Data Recipient Software Product. The presence of this header indicates that the API is being called in a customer present context. Not to be included for unauthenticated calls.",
        "explode" : false,
        "in" : "header",
        "name" : "x-fapi-customer-ip-address",
        "required" : false,
        "schema" : {
          "type" : "string"
        },
        "style" : "simple"
      },
      "RequestHeader_x-cds-client-headers" : {
        "description" : "The customer's original standard http headers [Base64](#common-field-types) encoded, including the original User Agent header, if the customer is currently logged in to the Data Recipient Software Product. Mandatory for customer present calls.  Not required for unattended or unauthenticated calls.",
        "explode" : false,
        "in" : "header",
        "name" : "x-cds-client-headers",
        "required" : false,
        "schema" : {
          "type" : "string",
          "x-conditional" : true,
          "x-cds-type" : "Base64"
        },
        "style" : "simple",
        "x-conditional" : true,
        "x-cds-type" : "Base64"
      }
    },
    "schemas" : {
      "ResponseCommonDiscoveryStatus" : {
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ResponseCommonDiscoveryStatus_data"
          },
          "links" : {
            "$ref" : "#/components/schemas/Links"
          },
          "meta" : {
            "$ref" : "#/components/schemas/Meta"
          }
        },
        "required" : [ "data", "links" ],
        "type" : "object"
      },
      "ResponseDiscoveryOutagesList" : {
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ResponseDiscoveryOutagesList_data"
          },
          "links" : {
            "$ref" : "#/components/schemas/Links"
          },
          "meta" : {
            "$ref" : "#/components/schemas/Meta"
          }
        },
        "required" : [ "data", "links" ],
        "type" : "object"
      },
      "DiscoveryOutage" : {
        "properties" : {
          "outageTime" : {
            "description" : "Date and time that the outage is scheduled to begin",
            "type" : "string",
            "x-cds-type" : "DateTimeString"
          },
          "duration" : {
            "description" : "Planned duration of the outage. Formatted according to [ISO 8601 Durations](https://en.wikipedia.org/wiki/ISO_8601#Durations) (excludes recurrence syntax)",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          },
          "isPartial" : {
            "description" : "Flag that indicates, if present and set to true, that the outage is only partial meaning that only a subset of normally available end points will be affected by the outage",
            "type" : "boolean",
            "x-cds-type" : "Boolean"
          },
          "explanation" : {
            "description" : "Provides an explanation of the current outage that can be displayed to an end customer",
            "type" : "string"
          }
        },
        "required" : [ "duration", "explanation", "outageTime" ],
        "type" : "object"
      },
      "ResponseCommonCustomer" : {
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ResponseCommonCustomer_data"
          },
          "links" : {
            "$ref" : "#/components/schemas/Links"
          },
          "meta" : {
            "$ref" : "#/components/schemas/Meta"
          }
        },
        "required" : [ "data", "links" ],
        "type" : "object"
      },
      "ResponseCommonCustomerDetailV2" : {
        "properties" : {
          "data" : {
            "$ref" : "#/components/schemas/ResponseCommonCustomerDetailV2_data"
          },
          "links" : {
            "$ref" : "#/components/schemas/Links"
          },
          "meta" : {
            "$ref" : "#/components/schemas/Meta"
          }
        },
        "required" : [ "data", "links" ],
        "type" : "object"
      },
      "CommonPerson" : {
        "properties" : {
          "lastUpdateTime" : {
            "description" : "The date and time that this record was last updated by the customer.  If no update has occurred then this date should reflect the initial creation date for the data",
            "type" : "string",
            "x-cds-type" : "DateTimeString"
          },
          "firstName" : {
            "description" : "For people with single names this field need not be present. The single name should be in the lastName field. Where a data holder cannot determine first and middle names from a collection of given names, a single string representing all given names MAY be provided.",
            "type" : "string"
          },
          "lastName" : {
            "description" : "For people with single names the single name should be in this field",
            "type" : "string"
          },
          "middleNames" : {
            "description" : "Field is mandatory but array may be empty",
            "items" : {
              "type" : "string"
            },
            "type" : "array"
          },
          "prefix" : {
            "description" : "Also known as title or salutation.  The prefix to the name (e.g. Mr, Mrs, Ms, Miss, Sir, etc)",
            "type" : "string"
          },
          "suffix" : {
            "description" : "Used for a trailing suffix to the name (e.g. Jr)",
            "type" : "string"
          },
          "occupationCode" : {
            "description" : "Value is a valid **[[ANZSCO]](#iref-ANZSCO)** Standard Occupation classification code. If the occupation code held by the data holder is not one of the supported **[[ANZSCO]](#iref-ANZSCO)** versions, then it must not be supplied.",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          },
          "occupationCodeVersion" : {
            "default" : "ANZSCO_1220.0_2013_V1.2",
            "description" : "The applicable **[[ANZSCO]](#iref-ANZSCO)** release version of the occupation code provided. Mandatory if an ``occupationCode`` is supplied. If ``occupationCode`` is supplied but ``occupationCodeVersion`` is absent, default is ``ANZSCO_1220.0_2013_V1.2``",
            "enum" : [ "ANZSCO_1220.0_2006_V1.0", "ANZSCO_1220.0_2006_V1.1", "ANZSCO_1220.0_2013_V1.2", "ANZSCO_1220.0_2013_V1.3" ],
            "type" : "string"
          }
        },
        "required" : [ "lastName", "middleNames" ],
        "type" : "object",
        "x-conditional" : [ "occupationCodeVersion" ]
      },
      "CommonPersonDetailV2" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CommonPerson"
        }, {
          "$ref" : "#/components/schemas/CommonPersonDetailV2_allOf"
        } ]
      },
      "CommonOrganisation" : {
        "properties" : {
          "lastUpdateTime" : {
            "description" : "The date and time that this record was last updated by the customer. If no update has occurred then this date should reflect the initial creation date for the data",
            "type" : "string",
            "x-cds-type" : "DateTimeString"
          },
          "agentFirstName" : {
            "description" : "The first name of the individual providing access on behalf of the organisation. For people with single names this field need not be present.  The single name should be in the lastName field",
            "type" : "string"
          },
          "agentLastName" : {
            "description" : "The last name of the individual providing access on behalf of the organisation. For people with single names the single name should be in this field",
            "type" : "string"
          },
          "agentRole" : {
            "description" : "The role of the individual identified as the agent who is providing authorisation.  Expected to be used for display. Default to Unspecified if the role is not known",
            "type" : "string"
          },
          "businessName" : {
            "description" : "Name of the organisation",
            "type" : "string"
          },
          "legalName" : {
            "description" : "Legal name, if different to the business name",
            "type" : "string"
          },
          "shortName" : {
            "description" : "Short name used for communication, if different to the business name",
            "type" : "string"
          },
          "abn" : {
            "description" : "Australian Business Number for the organisation",
            "type" : "string"
          },
          "acn" : {
            "description" : "Australian Company Number for the organisation. Required only if an ACN is applicable for the organisation type",
            "type" : "string"
          },
          "isACNCRegistered" : {
            "description" : "True if registered with the ACNC.  False if not. Absent or null if not confirmed.",
            "type" : "boolean",
            "x-cds-type" : "Boolean"
          },
          "industryCode" : {
            "description" : "A valid [ANZSIC](http://www.abs.gov.au/ANZSIC) code for the organisation. If the industry code held by the data holder is not one of the supported [ANZSIC](http://www.abs.gov.au/ANZSIC) versions, then it must not be supplied.",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          },
          "industryCodeVersion" : {
            "default" : "ANZSIC_1292.0_2006_V2.0",
            "description" : "The applicable [ANZSIC](http://www.abs.gov.au/ANZSIC) release version of the industry code provided. Should only be supplied if ``industryCode`` is also supplied. If ``industryCode`` is supplied but ``industryCodeVersion`` is absent, default is ``ANZSIC_1292.0_2006_V2.0``",
            "enum" : [ "ANZSIC_1292.0_2006_V1.0", "ANZSIC_1292.0_2006_V2.0" ],
            "type" : "string"
          },
          "organisationType" : {
            "description" : "Legal organisation type",
            "enum" : [ "COMPANY", "GOVERNMENT_ENTITY", "OTHER", "PARTNERSHIP", "SOLE_TRADER", "TRUST" ],
            "type" : "string"
          },
          "registeredCountry" : {
            "description" : "Enumeration with values from [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country codes.  Assumed to be AUS if absent",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          },
          "establishmentDate" : {
            "description" : "The date the organisation described was established",
            "type" : "string",
            "x-cds-type" : "DateString"
          }
        },
        "required" : [ "agentLastName", "agentRole", "businessName", "organisationType" ],
        "type" : "object",
        "x-conditional" : [ "industryCodeVersion" ]
      },
      "CommonOrganisationDetailV2" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CommonOrganisation"
        }, {
          "$ref" : "#/components/schemas/CommonOrganisationDetailV2_allOf"
        } ]
      },
      "CommonPhoneNumber" : {
        "properties" : {
          "isPreferred" : {
            "description" : "May be true for one and only one entry to indicate the preferred phone number. Assumed to be 'false' if not present",
            "type" : "boolean",
            "x-cds-type" : "Boolean"
          },
          "purpose" : {
            "description" : "The purpose of the number as specified by the customer",
            "enum" : [ "HOME", "INTERNATIONAL", "MOBILE", "OTHER", "UNSPECIFIED", "WORK" ],
            "type" : "string"
          },
          "countryCode" : {
            "description" : "If absent, assumed to be Australia (+61). The + should be included",
            "type" : "string"
          },
          "areaCode" : {
            "description" : "Required for non Mobile Phones, if field is present and refers to Australian code - the leading 0 should be omitted.",
            "type" : "string"
          },
          "number" : {
            "description" : "The actual phone number, with leading zeros as appropriate",
            "type" : "string"
          },
          "extension" : {
            "description" : "An extension number (if applicable)",
            "type" : "string"
          },
          "fullNumber" : {
            "description" : "Fully formatted phone number with country code, area code, number and extension incorporated. Formatted according to section 5.1.4. of **[[RFC3966]](#iref-RFC3966)**",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          }
        },
        "required" : [ "fullNumber", "number", "purpose" ],
        "type" : "object",
        "x-conditional" : [ "areaCode" ]
      },
      "CommonEmailAddress" : {
        "properties" : {
          "isPreferred" : {
            "description" : "May be true for one and only one email record in the collection. Denotes the default email address",
            "type" : "boolean",
            "x-cds-type" : "Boolean"
          },
          "purpose" : {
            "description" : "The purpose for the email, as specified by the customer (Enumeration)",
            "enum" : [ "HOME", "OTHER", "UNSPECIFIED", "WORK" ],
            "type" : "string"
          },
          "address" : {
            "description" : "A correctly formatted email address, as defined by the addr-spec format in **[[RFC5322]](#nref-RFC5322)**",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          }
        },
        "required" : [ "address", "purpose" ],
        "type" : "object"
      },
      "CommonPhysicalAddressWithPurpose" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CommonPhysicalAddress"
        }, {
          "$ref" : "#/components/schemas/CommonPhysicalAddressWithPurpose_allOf"
        } ]
      },
      "CommonPhysicalAddress" : {
        "properties" : {
          "addressUType" : {
            "description" : "The type of address object present",
            "enum" : [ "paf", "simple" ],
            "type" : "string"
          },
          "simple" : {
            "$ref" : "#/components/schemas/CommonSimpleAddress"
          },
          "paf" : {
            "$ref" : "#/components/schemas/CommonPAFAddress"
          }
        },
        "required" : [ "addressUType" ],
        "type" : "object",
        "x-conditional" : [ "simple", "paf" ]
      },
      "CommonSimpleAddress" : {
        "properties" : {
          "mailingName" : {
            "description" : "Name of the individual or business formatted for inclusion in an address used for physical mail",
            "type" : "string"
          },
          "addressLine1" : {
            "description" : "First line of the standard address object",
            "type" : "string"
          },
          "addressLine2" : {
            "description" : "Second line of the standard address object",
            "type" : "string"
          },
          "addressLine3" : {
            "description" : "Third line of the standard address object",
            "type" : "string"
          },
          "postcode" : {
            "description" : "Mandatory for Australian addresses",
            "type" : "string"
          },
          "city" : {
            "description" : "Name of the city or locality",
            "type" : "string"
          },
          "state" : {
            "description" : "Free text if the country is not Australia. If country is Australia then must be one of the values defined by the [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf) in the PAF file format. NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT",
            "type" : "string"
          },
          "country" : {
            "default" : "AUS",
            "description" : "A valid [ISO 3166 Alpha-3](https://www.iso.org/iso-3166-country-codes.html) country code. Australia (AUS) is assumed if country is not present.",
            "type" : "string",
            "x-cds-type" : "ExternalRef"
          }
        },
        "required" : [ "addressLine1", "city", "state" ],
        "type" : "object",
        "x-conditional" : [ "postcode" ]
      },
      "CommonPAFAddress" : {
        "description" : "Australian address formatted according to the file format defined by the [PAF file format](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf)",
        "properties" : {
          "dpid" : {
            "description" : "Unique identifier for an address as defined by Australia Post.  Also known as Delivery Point Identifier",
            "type" : "string"
          },
          "thoroughfareNumber1" : {
            "description" : "Thoroughfare number for a property (first number in a property ranged address)",
            "type" : "integer",
            "x-cds-type" : "PositiveInteger"
          },
          "thoroughfareNumber1Suffix" : {
            "description" : "Suffix for the thoroughfare number. Only relevant is thoroughfareNumber1 is populated",
            "type" : "string"
          },
          "thoroughfareNumber2" : {
            "description" : "Second thoroughfare number (only used if the property has a ranged address eg 23-25)",
            "type" : "integer",
            "x-cds-type" : "PositiveInteger"
          },
          "thoroughfareNumber2Suffix" : {
            "description" : "Suffix for the second thoroughfare number. Only relevant is thoroughfareNumber2 is populated",
            "type" : "string"
          },
          "flatUnitType" : {
            "description" : "Type of flat or unit for the address",
            "type" : "string"
          },
          "flatUnitNumber" : {
            "description" : "Unit number (including suffix, if applicable)",
            "type" : "string"
          },
          "floorLevelType" : {
            "description" : "Type of floor or level for the address",
            "type" : "string"
          },
          "floorLevelNumber" : {
            "description" : "Floor or level number (including alpha characters)",
            "type" : "string"
          },
          "lotNumber" : {
            "description" : "Allotment number for the address",
            "type" : "string"
          },
          "buildingName1" : {
            "description" : "Building/Property name 1",
            "type" : "string"
          },
          "buildingName2" : {
            "description" : "Building/Property name 2",
            "type" : "string"
          },
          "streetName" : {
            "description" : "The name of the street",
            "type" : "string"
          },
          "streetType" : {
            "description" : "The street type. Valid enumeration defined by Australia Post PAF code file",
            "type" : "string"
          },
          "streetSuffix" : {
            "description" : "The street type suffix. Valid enumeration defined by Australia Post PAF code file",
            "type" : "string"
          },
          "postalDeliveryType" : {
            "description" : "Postal delivery type. (eg. PO BOX). Valid enumeration defined by Australia Post PAF code file",
            "type" : "string"
          },
          "postalDeliveryNumber" : {
            "description" : "Postal delivery number if the address is a postal delivery type",
            "type" : "integer",
            "x-cds-type" : "PositiveInteger"
          },
          "postalDeliveryNumberPrefix" : {
            "description" : "Postal delivery number prefix related to the postal delivery number",
            "type" : "string"
          },
          "postalDeliveryNumberSuffix" : {
            "description" : "Postal delivery number suffix related to the postal delivery number",
            "type" : "string"
          },
          "localityName" : {
            "description" : "Full name of locality",
            "type" : "string"
          },
          "postcode" : {
            "description" : "Postcode for the locality",
            "type" : "string"
          },
          "state" : {
            "description" : "State in which the address belongs. Valid enumeration defined by Australia Post PAF code file [State Type Abbreviation](https://auspost.com.au/content/dam/auspost_corp/media/documents/australia-post-data-guide.pdf). NSW, QLD, VIC, NT, WA, SA, TAS, ACT, AAT",
            "type" : "string"
          }
        },
        "required" : [ "localityName", "postcode", "state" ],
        "type" : "object"
      },
      "Links" : {
        "properties" : {
          "self" : {
            "description" : "Fully qualified link that generated the current response document",
            "type" : "string",
            "x-cds-type" : "URIString"
          }
        },
        "required" : [ "self" ],
        "type" : "object"
      },
      "Meta" : {
        "type" : "object"
      },
      "MetaError" : {
        "description" : "Additional data for customised error codes",
        "properties" : {
          "urn" : {
            "description" : "The CDR error code URN which the application-specific error code extends. Mandatory if the error `code` is an application-specific error rather than a standardised error code.",
            "type" : "string"
          }
        },
        "type" : "object",
        "x-conditional" : [ "urn" ]
      },
      "ResponseErrorListV2" : {
        "properties" : {
          "errors" : {
            "items" : {
              "$ref" : "#/components/schemas/ResponseErrorListV2_errors"
            },
            "type" : "array"
          }
        },
        "required" : [ "errors" ],
        "type" : "object",
        "x-conditional" : [ "meta" ]
      },
      "ResponseCommonDiscoveryStatus_data" : {
        "properties" : {
          "status" : {
            "description" : "Enumeration with values. OK (implementation is fully functional). PARTIAL_FAILURE (one or more end points are unexpectedly unavailable). UNAVAILABLE (the full implementation is unexpectedly unavailable). SCHEDULED_OUTAGE (an advertised outage is in effect)",
            "enum" : [ "OK", "PARTIAL_FAILURE", "SCHEDULED_OUTAGE", "UNAVAILABLE" ],
            "type" : "string"
          },
          "explanation" : {
            "description" : "Provides an explanation of the current outage that can be displayed to an end customer. Mandatory if the status property is any value other than OK",
            "type" : "string"
          },
          "detectionTime" : {
            "description" : "The date and time that the current outage was detected. Should only be present if the status property is PARTIAL_FAILURE or UNAVAILABLE",
            "type" : "string",
            "x-cds-type" : "DateTimeString"
          },
          "expectedResolutionTime" : {
            "description" : "The date and time that full service is expected to resume (if known). Should not be present if the status property has a value of OK.",
            "type" : "string",
            "x-cds-type" : "DateTimeString"
          },
          "updateTime" : {
            "description" : "The date and time that this status was last updated by the Data Holder.",
            "type" : "string",
            "x-cds-type" : "DateTimeString"
          }
        },
        "required" : [ "status", "updateTime" ],
        "type" : "object",
        "x-conditional" : [ "explanation" ]
      },
      "ResponseDiscoveryOutagesList_data" : {
        "properties" : {
          "outages" : {
            "description" : "List of scheduled outages. Property is mandatory but may contain and empty list if no outages are scheduled",
            "items" : {
              "$ref" : "#/components/schemas/DiscoveryOutage"
            },
            "type" : "array"
          }
        },
        "required" : [ "outages" ],
        "type" : "object"
      },
      "ResponseCommonCustomer_data" : {
        "properties" : {
          "customerUType" : {
            "description" : "The type of customer object that is present",
            "enum" : [ "organisation", "person" ],
            "type" : "string"
          },
          "person" : {
            "$ref" : "#/components/schemas/CommonPerson"
          },
          "organisation" : {
            "$ref" : "#/components/schemas/CommonOrganisation"
          }
        },
        "required" : [ "customerUType" ],
        "type" : "object",
        "x-conditional" : [ "person", "organisation" ]
      },
      "ResponseCommonCustomerDetailV2_data" : {
        "properties" : {
          "customerUType" : {
            "description" : "The type of customer object that is present",
            "enum" : [ "organisation", "person" ],
            "type" : "string"
          },
          "person" : {
            "$ref" : "#/components/schemas/CommonPersonDetailV2"
          },
          "organisation" : {
            "$ref" : "#/components/schemas/CommonOrganisationDetailV2"
          }
        },
        "required" : [ "customerUType" ],
        "type" : "object",
        "x-conditional" : [ "person", "organisation" ]
      },
      "CommonPersonDetailV2_allOf" : {
        "properties" : {
          "phoneNumbers" : {
            "description" : "Array is mandatory but may be empty if no phone numbers are held",
            "items" : {
              "$ref" : "#/components/schemas/CommonPhoneNumber"
            },
            "type" : "array"
          },
          "emailAddresses" : {
            "description" : "May be empty",
            "items" : {
              "$ref" : "#/components/schemas/CommonEmailAddress"
            },
            "type" : "array"
          },
          "physicalAddresses" : {
            "description" : "Array is mandatory but may be empty if no valid addresses are held. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail",
            "items" : {
              "$ref" : "#/components/schemas/CommonPhysicalAddressWithPurpose"
            },
            "type" : "array"
          }
        },
        "required" : [ "emailAddresses", "phoneNumbers", "physicalAddresses" ],
        "type" : "object"
      },
      "CommonOrganisationDetailV2_allOf" : {
        "properties" : {
          "physicalAddresses" : {
            "description" : "Array is mandatory but may be empty if no valid addresses are held. One and only one address may have the purpose of REGISTERED. Zero or one, and no more than one, record may have the purpose of MAIL. If zero then the REGISTERED address is to be used for mail",
            "items" : {
              "$ref" : "#/components/schemas/CommonPhysicalAddressWithPurpose"
            },
            "type" : "array"
          }
        },
        "required" : [ "physicalAddresses" ],
        "type" : "object"
      },
      "CommonPhysicalAddressWithPurpose_allOf" : {
        "properties" : {
          "purpose" : {
            "description" : "Enumeration of values indicating the purpose of the physical address",
            "enum" : [ "MAIL", "OTHER", "PHYSICAL", "REGISTERED", "WORK" ],
            "type" : "string"
          }
        },
        "required" : [ "purpose" ],
        "type" : "object"
      },
      "ResponseErrorListV2_errors" : {
        "properties" : {
          "code" : {
            "description" : "The code of the error encountered. Where the error is specific to the respondent, an application-specific error code, expressed as a string value. If the error is application-specific, the URN code that the specific error extends must be provided in the meta object. Otherwise, the value is the error code URN.",
            "type" : "string"
          },
          "title" : {
            "description" : "A short, human-readable summary of the problem that MUST NOT change from occurrence to occurrence of the problem represented by the error code.",
            "type" : "string"
          },
          "detail" : {
            "description" : "A human-readable explanation specific to this occurrence of the problem.",
            "type" : "string"
          },
          "meta" : {
            "$ref" : "#/components/schemas/MetaError"
          }
        },
        "required" : [ "code", "detail", "title" ],
        "type" : "object"
      }
    }
  }
}