openapi: 3.0.1 info: title: Spaces Public description: "Spaces API is available to query Bunnings aisle, bay information and access store maps.\n\n## Security\n\nDepending on the scope held, more or less functionality is available at an endpoint.\n\n### spc:pub\nThis product scope provides general public access to the spaces ecosystem\n\nThe Spaces Public is built following the HATEOAS guidelines.\nWhen using the api, the client should start by first calling the `discovery` operation to get a list of possible links these links can then be followed into perform functions.\n\nIf no correlation token is provided when using this service, it will generate a token for you in the header response." termsOfService: https://developer.api.bunnings.com.au/terms contact: name: Developer email: developer@bunnings.com.au version: v1.1 servers: - url: https://localhost:8080 paths: '/aisle/{serverState}': get: tags: - Aisles summary: Returns a known aisle (Auth spc:pub) description: Returns a known aisle operationId: SPC:006/GetAisle/GET parameters: - name: serverState in: path description: "To call this operation server state is required, server state is obtained from the result of a previous call on this api that returned an entity with a rel pointing at this endpoint this is part of the API's HATEOAS design. When a returned entity has a rel for this operation the _meta collection on that object will contain a serverState property the value of that property is what should be passed as this parameter. The rel's href property will have a URI template that can be called by simply replacing {serverState} template variable with the value from _meta.serverState. To find the starting operations of this API call the /discovery operation. \r\n\r\nServer state is an opaque string that should be passed as received back to the api in subsequent calls. the form content and structure of the server state may change and is at the discretion of the api." required: true schema: type: string - name: inclusions in: query description: Supported inclusions in the maps response schema: $ref: '#/components/schemas/AislesInclusions' - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/AisleAndBaysResponse' example: {"countryCode":"AU","locationCode":"2010","aisleNumber":"9","description":"Plumbing PVC","area":"Plumbing","classification":{"code":"CODE01","description":"Normal racking","isShoppable":true},"_meta":{},"_links":[]} links: SPC:003/GetMap/GET#AisleMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current aisle belongs to.\n\n_Url Template:_ `/map/{mapServerState}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:006/GetAisle/GET: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\n_Url Template:_ `/aisle/{serverState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/bay/{serverState}`" SPC:009/SearchBaysByAisle/GET: operationId: SPC:009/SearchBaysByAisle/GET description: "Provides search functionality against bays in an aisle.\n\nReturn all bays in the current aisle\n\n_Url Template:_ `/aisles/{serverState}/bays`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:022/SearchClassifications/GET#SearchByCode: operationId: SPC:022/SearchClassifications/GET description: "Provides search functionality against aisle classifications.\n\nSearch by the aisles classification code\n\n_Url Template:_ `/aisles/classifications?$filter=code eq '{classificationCode}'`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MissingResourceProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/aisles/{countryCode}': get: tags: - Aisles summary: Provides search functionality against aisles. (Auth spc:pub) description: Provides search functionality against aisles. operationId: SPC:004/SearchAisles/GET parameters: - name: countryCode in: path description: Supported Bunnings country codes. required: true schema: $ref: '#/components/schemas/CountryCodes' - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 15 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match one of the bellow patterns\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|locationCode|Equal, In|('[1-9][0-9]{3}')||\r\n|1|classification/code|Equal, In|('(?:[^']|'')*')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[lL][oO][cC][aA][tT][iI][oO][nN][cC][oO][dD][eE]) (?:(?'operation'eq) (?'value''[1-9][0-9]{3}')|(?'operation'in) (?'b'\\[)(?:(?'value''[1-9][0-9]{3}'),)*(?'value''[1-9][0-9]{3}')(?'-b'\\]))\r\n * (?'property'[cC][lL][aA][sS][sS][iI][fF][iI][cC][aA][tT][iI][oO][nN]/[cC][oO][dD][eE]) (?:(?'operation'eq) (?'value''(?:[^']|'')*')|(?'operation'in) (?'b'\\[)(?:(?'value''(?:[^']|'')*'),)*(?'value''(?:[^']|'')*')(?'-b'\\]))\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n * In = ` in [,,]`\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - locationCode\nexample: $orderby=name desc,address/state asc.\n" schema: type: string - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/AislesResponse' example: {"aisles":[{"countryCode":"AU","locationCode":"2010","aisleNumber":"9","description":"Plumbing PVC","area":"Plumbing","classification":{"code":"CODE01","description":"Normal racking","isShoppable":true},"_meta":{},"_links":[]}],"_meta":{},"_links":[]} links: SPC:003/GetMap/GET#AisleMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current aisle belongs to.\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:004/SearchAisles/GET#NextPage: operationId: SPC:004/SearchAisles/GET description: "Provides search functionality against aisles.\n\n_Url Template:_ `/aisles/{countryCode}?continuationToken={continuationToken}`" SPC:006/GetAisle/GET: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/aisle/{serverState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/bay/{serverState}`" SPC:009/SearchBaysByAisle/GET: operationId: SPC:009/SearchBaysByAisle/GET description: "Provides search functionality against bays in an aisle.\n\nReturn all bays in the current aisle\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/aisles/{serverState}/bays`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:022/SearchClassifications/GET#SearchByCode: operationId: SPC:022/SearchClassifications/GET description: "Provides search functionality against aisle classifications.\n\nSearch by the aisles classification code\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/aisles/classifications?$filter=code eq '{classificationCode}'`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '404': description: 'The server cannot or will not process the request due to an apparent client error(e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/aisles/{serverState}/bays': get: tags: - Bays summary: Provides search functionality against bays in an aisle. (Auth spc:pub) description: Provides search functionality against bays in an aisle. operationId: SPC:009/SearchBaysByAisle/GET parameters: - name: serverState in: path description: "To call this operation server state is required, server state is obtained from the result of a previous call on this api that returned an entity with a rel pointing at this endpoint this is part of the API's HATEOAS design. When a returned entity has a rel for this operation the _meta collection on that object will contain a serverState property the value of that property is what should be passed as this parameter. The rel's href property will have a URI template that can be called by simply replacing {serverState} template variable with the value from _meta.serverState. To find the starting operations of this API call the /discovery operation. \r\n\r\nServer state is an opaque string that should be passed as received back to the api in subsequent calls. the form content and structure of the server state may change and is at the discretion of the api." required: true schema: type: string - name: inclusions in: query description: Supported inclusions in the bays response schema: $ref: '#/components/schemas/BaysInclusions' - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 15 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match one of the bellow patterns\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|bayNumber|Equal, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|(\\d+)||\r\n|1|lastPriceAudit|Equal, LessThen, GreaterThen, GreaterThenOrEqual, LessThenOrEqual|('(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)')||\r\n|1|lastPriceAuditUTC|Equal, LessThen, GreaterThen, GreaterThenOrEqual, LessThenOrEqual|('(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)([+-](\\d{2}):(\\d{2}))')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[bB][aA][yY][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq|gt|lt|ge|le) (?'value'\\d+)|(?'operation'in) (?'b'\\[)(?:(?'value'\\d+),)*(?'value'\\d+)(?'-b'\\]))\r\n * (?'property'[lL][aA][sS][tT][pP][rR][iI][cC][eE][aA][uU][dD][iI][tT]) (?'operation'eq|gt|lt|ge|le) (?'value''(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)')\r\n * (?'property'[lL][aA][sS][tT][pP][rR][iI][cC][eE][aA][uU][dD][iI][tT][uU][tT][cC]) (?'operation'eq|gt|lt|ge|le) (?'value''(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)([+-](\\d{2}):(\\d{2}))')\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n * Less Then = ` lt `\r\n * Less Then or Equal = ` le `\r\n * Greater Then = ` gt `\r\n * Greater Then or Equal = ` ge `\r\n * In = ` in [,,]`\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n**Lambda Filters**\r\n\r\nLambda filters must match on an lambda expression pattern and a sub predicate pattern\r\n|Complexity|LambdaProperty|LambdaOperation|SubPredicateProperty|SubPredicateOperators|SubPredicateValueRegex|Description|\r\n|----------|---------|---------|---------|---------|----------|-----------|\r\n|1|facings|Any|itemNumber|Equal, In|('[0-9]{7}')||\r\n\r\n*Matching Lambda Expression Regex Patterns*\r\n * (?'lambdaCollection'(?'lambdaProperty'[fF][aA][cC][iI][nN][gG][sS])/(?'lambdaOperation'any))\r\n\r\n*Allowed Lambda Operators*\r\n * Any = `/any(*: */)`\r\n\r\n\r\n*Matching **Any** Lambda Sub Predicate Regex Patterns*\r\n * (?'lambdaExpression'(\\S+)/(?'property'[iI][tT][eE][mM][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq) (?'value''[0-9]{7}')|(?'operation'in) (?'b'\\[)(?:(?'value''[0-9]{7}'),)*(?'value''[0-9]{7}')(?'-b'\\])))\r\n\r\n*Allowed **Any** Sub Predicate Operators*\r\n * Equal = ` eq `\r\n * In = ` in [,,]`\r\n\r\n\r\n*Matching **All** Lambda Sub Predicate Regex Patterns*\r\n\r\n*Allowed **All** Sub Predicate Operators*\r\n\r\nSample filter: $filter=children/all(c: c/name eq 'Bob' or c/address/state in ['WA','VIC'] or c/age gt 10)\r\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - lastPriceAudit\nexample: $orderby=name desc,address/state asc.\n" schema: type: string - name: $skip in: query description: "skip can be used to skip the first n number of results of the sequences of entities of the collection.\n\nexample: $skip=5" schema: minimum: 0 type: integer - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/BaysResponseV11' examples: Example 1: summary: '' value: {"bays":[{"facings":[{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0000123","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]},{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0003212","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]},{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0012323","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]}],"aisleNumber":0,"countryCode":"AU","locationCode":"2010","bayNumber":"9","description":"PVC bits and bobs","departmentId":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","departmentName":"Landscape","_meta":{},"_links":[]}],"_meta":{},"_links":[]} links: INV:002/itemstockbyitemandlocation/GET: operationRef: link://INV:002/itemstockbyitemandlocation/GET@inventory description: "Stock on hand for the item at the location.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/itemstock/{countryCode}/{locationCode}/{itemNumber}`" INV:003/itemstock/GET: operationRef: link://INV:003/itemstock/GET@inventory description: "Stock on hand for the items in the bay at the location. This link is included when facings are included\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/itemstock/{countryCode}?locationCodes={locationCodes}&itemNumbers={itemNumber}`" ITM:003/detail/CountryCode/ItemNumber/GET: operationRef: link://ITM:003/detail/CountryCode/ItemNumber/GET@item description: "Master item details for the facing.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/details/{countryCode}/{itemNumber}`" ITM:008/locations/ItemNumber/locationCodes/GET: operationRef: link://ITM:008/locations/ItemNumber/locationCodes/GET@item description: "Ranged item details for the facing at the location.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/locations/{countryCode}?itemNumbers={itemNumber}&locationCodes={locationCode}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/bay/{serverState}`" SPC:007/GetBay/GET#FacingBay: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\nBay that the current facing belongs to.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/bay/{bayServerState}`" SPC:008/SearchBays/GET#NextPage: operationId: SPC:008/SearchBays/GET description: "Provides search functionality against bays.\n\n_Url Template:_ `/bays/{countryCode}?continuationToken={continuationToken}`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '404': description: 'The server cannot or will not process the request due to an apparent client error(e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: Too many request back off and try again later security: - oauth2: - spc:pub /aisles/classifications: get: tags: - Aisles summary: Provides search functionality against aisle classifications. (Auth spc:pub) description: Provides search functionality against aisle classifications. operationId: SPC:022/SearchClassifications/GET parameters: - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 15 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match the bellow pattern\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|code|Equal, NotEqual, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|('(?:[^']|'')*')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[cC][oO][dD][eE]) (?:(?'operation'eq|lt|gt|ne|le|ge) (?'value''(?:[^']|'')*')|(?'operation'in) (?'b'\\[)(?:(?'value''(?:[^']|'')*'),)*(?'value''(?:[^']|'')*')(?'-b'\\]))\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n * Not Equal = ` ne `\r\n * Less Then = ` lt `\r\n * Less Then or Equal = ` le `\r\n * Greater Then = ` gt `\r\n * Greater Then or Equal = ` ge `\r\n * In = ` in [,,]`\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - code\nexample: $orderby=name desc,address/state asc.\n" schema: type: string - name: $skip in: query description: "skip can be used to skip the first n number of results of the sequences of entities of the collection.\n\nexample: $skip=5" schema: minimum: 0 type: integer - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/ClassificationsResponse' example: {"classifications":[{"code":"CODE01","description":"Normal racking","isShoppable":true}]} '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/bay/{serverState}': get: tags: - Bays summary: Returns a known bay. (Auth spc:pub) description: Returns a known bay. operationId: SPC:007/GetBay/GET parameters: - name: serverState in: path description: "To call this operation server state is required, server state is obtained from the result of a previous call on this api that returned an entity with a rel pointing at this endpoint this is part of the API's HATEOAS design. When a returned entity has a rel for this operation the _meta collection on that object will contain a serverState property the value of that property is what should be passed as this parameter. The rel's href property will have a URI template that can be called by simply replacing {serverState} template variable with the value from _meta.serverState. To find the starting operations of this API call the /discovery operation. \r\n\r\nServer state is an opaque string that should be passed as received back to the api in subsequent calls. the form content and structure of the server state may change and is at the discretion of the api." required: true schema: type: string - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/BayAndFacingsResponseV11' examples: Example 1: summary: '' value: {"facings":[{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0000123","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]},{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0003212","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]},{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0012323","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]}],"aisleNumber":0,"countryCode":"AU","locationCode":"2010","bayNumber":"9","description":"PVC bits and bobs","departmentId":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","departmentName":"Landscape","_meta":{},"_links":[]} links: INV:002/itemstockbyitemandlocation/GET: operationRef: link://INV:002/itemstockbyitemandlocation/GET@inventory description: "Stock on hand for the item at the location.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/itemstock/{countryCode}/{locationCode}/{itemNumber}`" INV:003/itemstock/GET: operationRef: link://INV:003/itemstock/GET@inventory description: "Stock on hand for the items in the bay at the location. This link is included when facings are included\n\n_Url Template:_ `/itemstock/{countryCode}?locationCodes={locationCodes}&itemNumbers={itemNumber}`" ITM:003/detail/CountryCode/ItemNumber/GET: operationRef: link://ITM:003/detail/CountryCode/ItemNumber/GET@item description: "Master item details for the facing.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/details/{countryCode}/{itemNumber}`" ITM:008/locations/ItemNumber/locationCodes/GET: operationRef: link://ITM:008/locations/ItemNumber/locationCodes/GET@item description: "Ranged item details for the facing at the location.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/locations/{countryCode}?itemNumbers={itemNumber}&locationCodes={locationCode}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Url Template:_ `/map/{mapServerState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Url Template:_ `/bay/{serverState}`" SPC:007/GetBay/GET#FacingBay: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\nBay that the current facing belongs to.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/bay/{bayServerState}`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MissingResourceProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/bays/{countryCode}': get: tags: - Bays summary: Provides search functionality against bays. (Auth spc:pub) description: Provides search functionality against bays. operationId: SPC:008/SearchBays/GET parameters: - name: countryCode in: path description: Supported Bunnings country codes. required: true schema: $ref: '#/components/schemas/CountryCodes' - name: inclusions in: query description: Supported inclusions in the bays response schema: $ref: '#/components/schemas/BaysInclusions' - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 30 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match one of the bellow patterns\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|departmentName|Equal, In|('(?:[^']|'')*')||\r\n|1|locationCode|Equal, In|('[1-9][0-9]{3}')||\r\n|1|aisleNumber|Equal, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|(\\d+)||\r\n|1|bayNumber|Equal, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|(\\d+)||\r\n|1|lastPriceAudit|Equal, LessThen, GreaterThen, GreaterThenOrEqual, LessThenOrEqual|('(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)')||\r\n|1|lastPriceAuditUTC|Equal, LessThen, GreaterThen, GreaterThenOrEqual, LessThenOrEqual|('(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)([+-](\\d{2}):(\\d{2}))')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[dD][eE][pP][aA][rR][tT][mM][eE][nN][tT][nN][aA][mM][eE]) (?:(?'operation'eq) (?'value''(?:[^']|'')*')|(?'operation'in) (?'b'\\[)(?:(?'value''(?:[^']|'')*'),)*(?'value''(?:[^']|'')*')(?'-b'\\]))\r\n * (?'property'[lL][oO][cC][aA][tT][iI][oO][nN][cC][oO][dD][eE]) (?:(?'operation'eq) (?'value''[1-9][0-9]{3}')|(?'operation'in) (?'b'\\[)(?:(?'value''[1-9][0-9]{3}'),)*(?'value''[1-9][0-9]{3}')(?'-b'\\]))\r\n * (?'property'[aA][iI][sS][lL][eE][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq|gt|lt|ge|le) (?'value'\\d+)|(?'operation'in) (?'b'\\[)(?:(?'value'\\d+),)*(?'value'\\d+)(?'-b'\\]))\r\n * (?'property'[bB][aA][yY][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq|gt|lt|ge|le) (?'value'\\d+)|(?'operation'in) (?'b'\\[)(?:(?'value'\\d+),)*(?'value'\\d+)(?'-b'\\]))\r\n * (?'property'[lL][aA][sS][tT][pP][rR][iI][cC][eE][aA][uU][dD][iI][tT]) (?'operation'eq|gt|lt|ge|le) (?'value''(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)')\r\n * (?'property'[lL][aA][sS][tT][pP][rR][iI][cC][eE][aA][uU][dD][iI][tT][uU][tT][cC]) (?'operation'eq|gt|lt|ge|le) (?'value''(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)([+-](\\d{2}):(\\d{2}))')\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n * Less Then = ` lt `\r\n * Less Then or Equal = ` le `\r\n * Greater Then = ` gt `\r\n * Greater Then or Equal = ` ge `\r\n * In = ` in [,,]`\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n**Lambda Filters**\r\n\r\nLambda filters must match on an lambda expression pattern and a sub predicate pattern\r\n|Complexity|LambdaProperty|LambdaOperation|SubPredicateProperty|SubPredicateOperators|SubPredicateValueRegex|Description|\r\n|----------|---------|---------|---------|---------|----------|-----------|\r\n|1|facings|Any|itemNumber|Equal, In|('[0-9]{7}')||\r\n\r\n*Matching Lambda Expression Regex Patterns*\r\n * (?'lambdaCollection'(?'lambdaProperty'[fF][aA][cC][iI][nN][gG][sS])/(?'lambdaOperation'any))\r\n\r\n*Allowed Lambda Operators*\r\n * Any = `/any(*: */)`\r\n\r\n\r\n*Matching **Any** Lambda Sub Predicate Regex Patterns*\r\n * (?'lambdaExpression'(\\S+)/(?'property'[iI][tT][eE][mM][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq) (?'value''[0-9]{7}')|(?'operation'in) (?'b'\\[)(?:(?'value''[0-9]{7}'),)*(?'value''[0-9]{7}')(?'-b'\\])))\r\n\r\n*Allowed **Any** Sub Predicate Operators*\r\n * Equal = ` eq `\r\n * In = ` in [,,]`\r\n\r\n\r\n*Matching **All** Lambda Sub Predicate Regex Patterns*\r\n\r\n*Allowed **All** Sub Predicate Operators*\r\n\r\nSample filter: $filter=children/all(c: c/name eq 'Bob' or c/address/state in ['WA','VIC'] or c/age gt 10)\r\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - locationCode\n - lastPriceAudit\nexample: $orderby=name desc,address/state asc.\n" schema: type: string - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer - name: $fullPage in: query description: "fullPage can be used to force the return of a full pages results if available.\nBy default $top represents the maximum number of results that can be returned in a single\npage, however a page may be returned with fewer results with a continuation token if other\nconditions are met such as maximum execution time to get the results. If $fullPage is passed\nas true then the api will keep gathering results until a full page is collected. The implication\nof this is that the results may take a variable length of time before they are returned with\nno guarantees on response times. If the client needs a full page of results before using them then\nset this to true however if the client can use a partial page of results while retrieving more results\nthen fullPage should be false(default) to get some results as fast as possible." schema: type: boolean responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/BaysResponseV11' examples: Example 1: summary: '' value: {"bays":[{"facings":[{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0000123","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]},{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0003212","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]},{"planAlignment":{"facing":"StoreFacingOnly","itemNumber":"StoreOnly"},"itemNumber":"0012323","bayNumber":0,"effectiveSequence":0,"_meta":{},"_links":[]}],"aisleNumber":0,"countryCode":"AU","locationCode":"2010","bayNumber":"9","description":"PVC bits and bobs","departmentId":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","departmentName":"Landscape","_meta":{},"_links":[]}],"_meta":{},"_links":[]} links: INV:002/itemstockbyitemandlocation/GET: operationRef: link://INV:002/itemstockbyitemandlocation/GET@inventory description: "Stock on hand for the item at the location.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/itemstock/{countryCode}/{locationCode}/{itemNumber}`" INV:003/itemstock/GET: operationRef: link://INV:003/itemstock/GET@inventory description: "Stock on hand for the items in the bay at the location. This link is included when facings are included\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/itemstock/{countryCode}?locationCodes={locationCodes}&itemNumbers={itemNumber}`" ITM:003/detail/CountryCode/ItemNumber/GET: operationRef: link://ITM:003/detail/CountryCode/ItemNumber/GET@item description: "Master item details for the facing.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/details/{countryCode}/{itemNumber}`" ITM:008/locations/ItemNumber/locationCodes/GET: operationRef: link://ITM:008/locations/ItemNumber/locationCodes/GET@item description: "Ranged item details for the facing at the location.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/locations/{countryCode}?itemNumbers={itemNumber}&locationCodes={locationCode}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/bay/{serverState}`" SPC:007/GetBay/GET#FacingBay: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\nBay that the current facing belongs to.\n\n_Path To Link:_ `$.bays[*].facings[*]`\n\n_Url Template:_ `/bay/{bayServerState}`" SPC:008/SearchBays/GET#NextPage: operationId: SPC:008/SearchBays/GET description: "Provides search functionality against bays.\n\n_Url Template:_ `/bays/{countryCode}?continuationToken={continuationToken}`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Path To Link:_ `$.bays[*]`\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '404': description: 'The server cannot or will not process the request due to an apparent client error(e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/department/{serverState}': get: tags: - Department summary: Gets a department by its reference. (Auth spc:pub) description: Gets a department by its reference. operationId: SPC:013/GetDepartment/GET parameters: - name: serverState in: path description: "To call this operation server state is required, server state is obtained from the result of a previous call on this api that returned an entity with a rel pointing at this endpoint this is part of the API's HATEOAS design. When a returned entity has a rel for this operation the _meta collection on that object will contain a serverState property the value of that property is what should be passed as this parameter. The rel's href property will have a URI template that can be called by simply replacing {serverState} template variable with the value from _meta.serverState. To find the starting operations of this API call the /discovery operation. \r\n\r\nServer state is an opaque string that should be passed as received back to the api in subsequent calls. the form content and structure of the server state may change and is at the discretion of the api." required: true schema: type: string - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/GetDepartmentResponse' examples: Example 1: summary: '' value: {"id":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","name":"Tools","_meta":{"serverState":"AVNQQzowMTMvR2V0RGVwYXJ0bWVudC9HRVQDOTJhNzY4MGMtZDY3YS00MmYyLWFlODctMmUwZWFkMTY3OWEyLTkyYTc2ODBjLWQ2N2EtNDJmMi1hZTg3LTJlMGVhZDE2NzlhMgMDJIhFgb-i2wg"},"_links":[{"rel":"SPC:013/GetDepartment/GET","href":"https://localhost:44359/spaces-api/department/{serverState}","methods":["GET"]}]} links: SPC:013/GetDepartment/GET: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\n_Url Template:_ `/department/{serverState}`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MissingResourceProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '429': description: Too many request back off and try again later security: - oauth2: - spc:pub /departments: get: tags: - Department summary: Gets all known departments. (Auth spc:pub) description: Gets all known departments. operationId: SPC:012/GetDepartments/GET parameters: - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 15 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match one of the bellow patterns\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|departmentName|Equal|('(?:[^']|'')*')||\r\n|1|departmentId|Equal|('(?:[^']|'')*')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[dD][eE][pP][aA][rR][tT][mM][eE][nN][tT][nN][aA][mM][eE]) (?'operation'eq) (?'value''(?:[^']|'')*')\r\n * (?'property'[dD][eE][pP][aA][rR][tT][mM][eE][nN][tT][iI][dD]) (?'operation'eq) (?'value''(?:[^']|'')*')\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - departmentName\nexample: $orderby=name desc,address/state asc.\n" schema: type: string - name: $skip in: query description: "skip can be used to skip the first n number of results of the sequences of entities of the collection.\n\nexample: $skip=5" schema: minimum: 0 type: integer - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/GetDepartmentsResponse' examples: Example 1: summary: '' value: {"departments":[{"id":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","name":"Tools","_meta":{"serverState":"AVNQQzowMTMvR2V0RGVwYXJ0bWVudC9HRVQDOTJhNzY4MGMtZDY3YS00MmYyLWFlODctMmUwZWFkMTY3OWEyLTkyYTc2ODBjLWQ2N2EtNDJmMi1hZTg3LTJlMGVhZDE2NzlhMgMDJIhFgb-i2wg"},"_links":[{"rel":"SPC:013/GetDepartment/GET","href":"https://localhost:44359/spaces-api/department/{serverState}","methods":["GET"]}]}],"_meta":{},"_links":[]} links: SPC:012/GetDepartments/GET#NextPage: operationId: SPC:012/GetDepartments/GET description: "Gets all known departments.\n\n_Url Template:_ `/departments?continuationToken={continuationToken}`" SPC:013/GetDepartment/GET: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\n_Path To Link:_ `$.departments[*]`\n\n_Url Template:_ `/department/{serverState}`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MissingResourceProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '429': description: Too many request back off and try again later security: - oauth2: - spc:pub /discovery: get: tags: - Discovery summary: Get a set of links for available root operations. (Auth spc:pub) description: "Get a set of links for available root operations. Given a callers security this will return a set of links that are valid operational roots in this API that are end points that can be used. \r\nSome of these link URIs will be templates that will need to be filled in to be called." operationId: SPC:001/Discovery/GET parameters: - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/EntryPoint' links: SPC:002/SearchMaps/GET: operationId: SPC:002/SearchMaps/GET description: "Provides search functionality against maps.\n\n_Url Template:_ `/maps/{countryCode}`" SPC:004/SearchAisles/GET: operationId: SPC:004/SearchAisles/GET description: "Provides search functionality against aisles.\n\n_Url Template:_ `/aisles/{countryCode}`" SPC:008/SearchBays/GET: operationId: SPC:008/SearchBays/GET description: "Provides search functionality against bays.\n\n_Url Template:_ `/bays/{countryCode}`" SPC:012/GetDepartments/GET: operationId: SPC:012/GetDepartments/GET description: "Gets all known departments.\n\n_Url Template:_ `/departments`" SPC:023/SearchFacings/GET: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\n_Url Template:_ `/facings/{countryCode}`" '401': description: Unauthorized '403': description: Forbidden 5XX: description: An unexpected error has occurred '400': description: 'There was a problem with the request. The details are in an RFC 7807 compliant problem. [RFC 7807](https://tools.ietf.org/html/rfc7807)' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/facings/{countryCode}': get: tags: - Facings summary: Provides search functionality against facings. (Auth spc:pub) description: Provides search functionality against facings. operationId: SPC:023/SearchFacings/GET parameters: - name: countryCode in: path description: Supported Bunnings country codes. required: true schema: $ref: '#/components/schemas/CountryCodes' - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 15 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match one of the bellow patterns\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|locationCode|Equal, In|('[1-9][0-9]{3}')||\r\n|1|aisleNumber|Equal, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|([0-9]+)||\r\n|1|bayNumber|Equal, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|([0-9]+)||\r\n|1|itemNumber|Equal, LessThen, GreaterThen, In, GreaterThenOrEqual, LessThenOrEqual|('[0-9]{7}')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[lL][oO][cC][aA][tT][iI][oO][nN][cC][oO][dD][eE]) (?:(?'operation'eq) (?'value''[1-9][0-9]{3}')|(?'operation'in) (?'b'\\[)(?:(?'value''[1-9][0-9]{3}'),)*(?'value''[1-9][0-9]{3}')(?'-b'\\]))\r\n * (?'property'[aA][iI][sS][lL][eE][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq|gt|lt|ge|le) (?'value'[0-9]+)|(?'operation'in) (?'b'\\[)(?:(?'value'[0-9]+),)*(?'value'[0-9]+)(?'-b'\\]))\r\n * (?'property'[bB][aA][yY][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq|gt|lt|ge|le) (?'value'[0-9]+)|(?'operation'in) (?'b'\\[)(?:(?'value'[0-9]+),)*(?'value'[0-9]+)(?'-b'\\]))\r\n * (?'property'[iI][tT][eE][mM][nN][uU][mM][bB][eE][rR]) (?:(?'operation'eq|gt|lt|ge|le) (?'value''[0-9]{7}')|(?'operation'in) (?'b'\\[)(?:(?'value''[0-9]{7}'),)*(?'value''[0-9]{7}')(?'-b'\\]))\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n * Less Then = ` lt `\r\n * Less Then or Equal = ` le `\r\n * Greater Then = ` gt `\r\n * Greater Then or Equal = ` ge `\r\n * In = ` in [,,]`\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - locationCode\nexample: $orderby=name desc,address/state asc.\n" schema: type: string - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/FacingsResponse' examples: Example 1: summary: '' value: {"facings":[{"itemNumber":"0001324","bayNumber":0,"effectiveSequence":3,"_meta":{},"_links":[]}],"_meta":{},"_links":[]} links: INV:002/itemstockbyitemandlocation/GET: operationRef: link://INV:002/itemstockbyitemandlocation/GET@inventory description: "Stock on hand for the item at the location.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/itemstock/{countryCode}/{locationCode}/{itemNumber}`" ITM:003/detail/CountryCode/ItemNumber/GET: operationRef: link://ITM:003/detail/CountryCode/ItemNumber/GET@item description: "Master item details for the facing.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/details/{countryCode}/{itemNumber}`" ITM:008/locations/ItemNumber/locationCodes/GET: operationRef: link://ITM:008/locations/ItemNumber/locationCodes/GET@item description: "Ranged item details for the facing at the location.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/locations/{countryCode}?itemNumbers={itemNumber}&locationCodes={locationCode}`" SPC:007/GetBay/GET#FacingBay: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\nBay that the current facing belongs to.\n\n_Path To Link:_ `$.facings[*]`\n\n_Url Template:_ `/bay/{bayServerState}`" SPC:023/SearchFacings/GET#NextPage: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\n_Url Template:_ `/facings/{countryCode}?continuationToken={continuationToken}`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '404': description: 'The server cannot or will not process the request due to an apparent client error(e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/map/{serverState}': get: tags: - Maps summary: Returns a known map. (Auth spc:pub) description: Returns a known map. operationId: SPC:003/GetMap/GET parameters: - name: serverState in: path description: 'To call this operation server state is required, server state is obtained from the result of a previous call on this api that returned an entity with a rel pointing at this endpoint this is part of the API''s HATEOAS design. When a returned entity has a rel for this operation the _meta collection on that object will contain a serverState property the value of that property is what should be passed as this parameter. The rel''s href property will have a URI template that can be called by simply replacing {serverState} template variable with the value from _meta.serverState. To find the starting operations of this API call the /discovery operation. \r\n\r\nServer state is an opaque string that should be passed as received back to the api in subsequent calls. the form content and structure of the server state may change and is at the discretion of the api.' required: true schema: type: string description: 'To call this operation server state is required, server state is obtained from the result of a previous call on this api that returned an entity with a rel pointing at this endpoint this is part of the API''s HATEOAS design. When a returned entity has a rel for this operation the _meta collection on that object will contain a serverState property the value of that property is what should be passed as this parameter. The rel''s href property will have a URI template that can be called by simply replacing {serverState} template variable with the value from _meta.serverState. To find the starting operations of this API call the /discovery operation. \r\n\r\nServer state is an opaque string that should be passed as received back to the api in subsequent calls. the form content and structure of the server state may change and is at the discretion of the api.' - name: inclusions in: query description: Supported inclusions in the maps response schema: $ref: '#/components/schemas/MapsInclusions' - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/MapResponse' example: {"countryCode":"AU","locationCode":"2010","aisles":[{"bays":[{"bayNumber":"9","description":"Washers","hasTopStock":false,"hasHandStock":true,"hasRetailStock":true,"lastPriceAudit":"2022-08-17T22:00:00+00:00","_meta":{},"_links":[]}],"aisleNumber":"9","description":"Plumbing PVC","area":"Plumbing","_meta":{},"_links":[]},{"bays":[{"bayNumber":"59","description":"Wires","departmentId":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","hasTopStock":true,"hasHandStock":true,"hasRetailStock":true,"lastPriceAudit":"2022-08-13T22:00:00+00:00","_meta":{},"_links":[]}],"aisleNumber":"10","description":"Electrical Wires","area":"Electrical","_meta":{},"_links":[]}],"_meta":{},"_links":[]} links: SPC:003/GetMap/GET: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\n_Url Template:_ `/map/{serverState}`" SPC:003/GetMap/GET#AisleMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current aisle belongs to.\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:004/SearchAisles/GET#ByMap: operationId: SPC:004/SearchAisles/GET description: "Provides search functionality against aisles.\n\nFiltered by the current map.\n\n_Url Template:_ `/aisles/{countryCode}?$filter=mapId eq {mapId}`" SPC:006/GetAisle/GET: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/aisle/{serverState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/bay/{serverState}`" SPC:009/SearchBaysByAisle/GET: operationId: SPC:009/SearchBaysByAisle/GET description: "Provides search functionality against bays in an aisle.\n\nReturn all bays in the current aisle\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/aisles/{serverState}/bays`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:022/SearchClassifications/GET#SearchByCode: operationId: SPC:022/SearchClassifications/GET description: "Provides search functionality against aisle classifications.\n\nSearch by the aisles classification code\n\n_Path To Link:_ `$.aisles[*]`\n\n_Url Template:_ `/aisles/classifications?$filter=code eq '{classificationCode}'`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Path To Link:_ `$.aisles[*].bays[*]`\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/MissingResourceProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '429': description: Too many request back off and try again later security: - oauth2: - spc:pub '/maps/{countryCode}': get: tags: - Maps summary: Provides search functionality against maps. (Auth spc:pub) description: Provides search functionality against maps. operationId: SPC:002/SearchMaps/GET parameters: - name: countryCode in: path description: Supported Bunnings country codes. required: true schema: $ref: '#/components/schemas/CountryCodes' - name: inclusions in: query description: Supported inclusions in the maps response schema: $ref: '#/components/schemas/MapsInclusions' - name: continuationToken in: query description: Optional continuation token that allows for paging to the next result set schema: type: string description: Optional continuation token that allows for paging to the next result set - name: x-version-api in: header description: The API version the client is calling this endpoint at. When calling this api the client must provided the version of the api they have been written against this allows the api to correctly support the calling clients. Clients are still required to support non breaking changes within the same version required: true schema: type: string example: '1.1' - name: $select in: query description: "Select can optionally be used to project only the required properties of the entity/entities from the server.\n- list required properties separated with a ','.\n- property names are case insensitive.\n- '\\\\*' can be used as a wild card for any property.\n- use '/' to address complex type properties.\n\nexample: $select=name,address/state,contact/*/phoneNumber" schema: type: string - name: $filter in: query description: "Filter can be optionally used to filter out entities of the collection.\nA filter is comprised of one or more expressions joined with the following logical operators listed bellow in precedence order.\n\n*Allowed Logical Operators*\r\n * `()`\r\n * `not `\r\n * ` and `\r\n * ` or `\r\n\n\nThe filter can not exceed a maximum of 15 complexity which is a sum of the complexity of each expression in the filter.\nExpressions match the bellow pattern\n\n**Basic Filters**\r\n|Complexity|Property|Operators|ValueRegex|Description|\r\n|----------|---------|---------|----------|-----------|\r\n|1|locationCode|Equal, In|('[1-9][0-9]{3}')||\r\n\r\n*Matching Regex Patterns*:\r\n * (?'property'[lL][oO][cC][aA][tT][iI][oO][nN][cC][oO][dD][eE]) (?:(?'operation'eq) (?'value''[1-9][0-9]{3}')|(?'operation'in) (?'b'\\[)(?:(?'value''[1-9][0-9]{3}'),)*(?'value''[1-9][0-9]{3}')(?'-b'\\]))\r\n\r\n*Allowed Operators*\r\n * Equal = ` eq `\r\n * In = ` in [,,]`\r\n\r\n\r\nSample filter: $filter=name eq 'Bob' and (address/state in ['WA','VIC'] or age gt 10)\r\n\n\n" schema: type: string - name: $orderby in: query description: "Order By can be optionally used to control the sequence the entities of the collection are returned in.\nThis collection can have a maximum of 3 order properties separated by a ',' character.\nSorting can be done in asc or desc order by following the property name by a space and then the key words asc or desc.\nIf no direction is specified then asc is assumed.\nThis collection can be sorted by the following properties:\n - locationCode\nexample: $orderby=name desc,address/state asc.\ndefault: locationCode" schema: type: string - name: $top in: query description: "top can be used to take the first n number of results of the sequences of entities of the collection. the maximum value for top is 1000\n\nexample: $top=5" schema: minimum: 1 type: integer responses: '200': description: Success headers: ETag: description: An ETag of the resource schema: type: string description: An ETag of the resource format: '' content: application/json: schema: $ref: '#/components/schemas/MapsResponse' example: {"maps":[{"countryCode":"AU","locationCode":"2010","aisles":[{"bays":[{"bayNumber":"9","description":"Washers","hasTopStock":false,"hasHandStock":true,"hasRetailStock":true,"lastPriceAudit":"2022-08-17T22:00:00+00:00","_meta":{},"_links":[]}],"aisleNumber":"9","description":"Plumbing PVC","area":"Plumbing","_meta":{},"_links":[]},{"bays":[{"bayNumber":"59","description":"Wires","departmentId":"92a7680c-d67a-42f2-ae87-2e0ead1679a2","hasTopStock":true,"hasHandStock":true,"hasRetailStock":true,"lastPriceAudit":"2022-08-13T22:00:00+00:00","_meta":{},"_links":[]}],"aisleNumber":"10","description":"Electrical Wires","area":"Electrical","_meta":{},"_links":[]}],"_meta":{},"_links":[]}],"_meta":{},"_links":[]} links: SPC:002/SearchMaps/GET#NextPage: operationId: SPC:002/SearchMaps/GET description: "Provides search functionality against maps.\n\n_Url Template:_ `/maps/{countryCode}?continuationToken={continuationToken}`" SPC:003/GetMap/GET: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\n_Path To Link:_ `$.maps[*]`\n\n_Url Template:_ `/map/{serverState}`" SPC:003/GetMap/GET#AisleMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current aisle belongs to.\n\n_Path To Link:_ `$.maps[*].aisles[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:003/GetMap/GET#BayMap: operationId: SPC:003/GetMap/GET description: "Returns a known map.\n\nMap that the current bay belongs to.\n\n_Path To Link:_ `$.maps[*].aisles[*].bays[*]`\n\n_Url Template:_ `/map/{mapServerState}`" SPC:004/SearchAisles/GET#ByMap: operationId: SPC:004/SearchAisles/GET description: "Provides search functionality against aisles.\n\nFiltered by the current map.\n\n_Path To Link:_ `$.maps[*]`\n\n_Url Template:_ `/aisles/{countryCode}?$filter=mapId eq {mapId}`" SPC:006/GetAisle/GET: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\n_Path To Link:_ `$.maps[*].aisles[*]`\n\n_Url Template:_ `/aisle/{serverState}`" SPC:006/GetAisle/GET#BayAisle: operationId: SPC:006/GetAisle/GET description: "Returns a known aisle\n\nAisle that the current bay belongs to.\n\n_Path To Link:_ `$.maps[*].aisles[*].bays[*]`\n\n_Url Template:_ `/aisle/{aisleServerState}`" SPC:007/GetBay/GET: operationId: SPC:007/GetBay/GET description: "Returns a known bay.\n\n_Path To Link:_ `$.maps[*].aisles[*].bays[*]`\n\n_Url Template:_ `/bay/{serverState}`" SPC:009/SearchBaysByAisle/GET: operationId: SPC:009/SearchBaysByAisle/GET description: "Provides search functionality against bays in an aisle.\n\nReturn all bays in the current aisle\n\n_Path To Link:_ `$.maps[*].aisles[*]`\n\n_Url Template:_ `/aisles/{serverState}/bays`" SPC:013/GetDepartment/GET#BayDepartment: operationId: SPC:013/GetDepartment/GET description: "Gets a department by its reference.\n\nDepartment that the current bay belongs to.\n\n_Path To Link:_ `$.maps[*].aisles[*].bays[*]`\n\n_Url Template:_ `/department/{departmentServerState}`" SPC:022/SearchClassifications/GET#SearchByCode: operationId: SPC:022/SearchClassifications/GET description: "Provides search functionality against aisle classifications.\n\nSearch by the aisles classification code\n\n_Path To Link:_ `$.maps[*].aisles[*]`\n\n_Url Template:_ `/aisles/classifications?$filter=code eq '{classificationCode}'`" SPC:023/SearchFacings/GET#ByBay: operationId: SPC:023/SearchFacings/GET description: "Provides search functionality against facings.\n\nAll facings in the current bay.\n\n_Path To Link:_ `$.maps[*].aisles[*].bays[*]`\n\n_Url Template:_ `/facings/{countryCode}?$filter=locationCode eq '{locationCode}' and aisleNumber eq '{aisleNumber}' and bayNumber eq '{bayNumber}'`" '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ValidationErrorsProblemDetails' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenProblemDetails' '500': description: Server Error content: application/json: schema: $ref: '#/components/schemas/UnhandledProblemDetails' '401': description: Unauthorized 5XX: description: An unexpected error has occurred '404': description: 'The server cannot or will not process the request due to an apparent client error(e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: Too many request back off and try again later security: - oauth2: - spc:pub components: schemas: AisleAndBaysResponse: required: - aisleNumber - countryCode - description - locationCode type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true aisleNumber: minLength: 1 type: string description: A number that represent the aisle in the store map description: minLength: 1 type: string description: The description of the aisle in store domain area: type: string description: The area the aisle is assign to nullable: true classification: $ref: '#/components/schemas/Classification' countryCode: $ref: '#/components/schemas/CountryCodes' locationCode: minLength: 1 pattern: '[1-9][0-9]{3}' type: string description: Supported Bunnings location code bays: type: array items: $ref: '#/components/schemas/BayResponse' description: 'Bays in the aisle, will only have a value if bays are requested in the search query' nullable: true description: Models a single Aisle in a store AislesInclusions: enum: - Bays - None type: string description: Supported inclusions in the maps response AislesResponse: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true aisles: type: array items: $ref: '#/components/schemas/AisleAndBaysResponse' description: Aisles nullable: true description: Aisles response Audit: type: object properties: scanSequence: type: integer description: 'The sequence in which an item was scanned in a left to right, top to bottom direction in a bay' format: int32 nullable: true lastPriceAudit: type: string description: Local time in which the last price audit occurred format: date-time nullable: true shelfPrice: type: number description: ShelfPrice format: decimal nullable: true description: Details about the last time the facing was audited BaseAisleAndBaysResponse: required: - aisleNumber - description type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true aisleNumber: minLength: 1 type: string description: A number that represent the aisle in the store map description: minLength: 1 type: string description: The description of the aisle in store domain area: type: string description: The area the aisle is assign to nullable: true classification: $ref: '#/components/schemas/Classification' bays: type: array items: $ref: '#/components/schemas/BaseBayResponse' description: 'Bays in the aisle, will only have a value if bays are requested in the search query' nullable: true description: Base models a single Aisle in a store BaseBayResponse: required: - bayNumber - description type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true bayNumber: minLength: 1 type: string description: A number that represents the bay number in the context of a parent aisle description: minLength: 1 type: string description: The description of the bay in the context of a parent aisle departmentId: type: string description: Is the reference to the department Id nullable: true departmentName: type: string description: Is the reference to the department name nullable: true lastModifiedDate: type: string description: 'Last time the record was modified, in local timezone' format: date-time nullable: true description: Base models a single bay in an aisle in a store BayAndFacingsResponse: required: - bayNumber - description type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true bayNumber: minLength: 1 type: string description: A number that represents the bay number in the context of a parent aisle description: minLength: 1 type: string description: The description of the bay in the context of a parent aisle departmentId: type: string description: Is the reference to the department Id nullable: true departmentName: type: string description: Is the reference to the department name nullable: true lastModifiedDate: type: string description: 'Last time the record was modified, in local timezone' format: date-time nullable: true aisleNumber: type: integer description: 'AisleNumber such as 1, 2 and etc' format: int32 countryCode: $ref: '#/components/schemas/CountryCodes' locationCode: type: string description: 'Location code of a store, such as 2010' nullable: true facings: type: array items: $ref: '#/components/schemas/FacingResponse' description: 'Facings, will only have a value if facings are requested in the search query' nullable: true description: 'Models a single bay in an aisle in a store, with optional facings' BayAndFacingsResponseV11: required: - bayNumber - description type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true bayNumber: minLength: 1 type: string description: A number that represents the bay number in the context of a parent aisle description: minLength: 1 type: string description: The description of the bay in the context of a parent aisle departmentId: type: string description: Is the reference to the department Id nullable: true departmentName: type: string description: Is the reference to the department name nullable: true lastModifiedDate: type: string description: 'Last time the record was modified, in local timezone' format: date-time nullable: true aisleNumber: type: integer description: 'AisleNumber such as 1, 2 and etc' format: int32 countryCode: $ref: '#/components/schemas/CountryCodes' locationCode: type: string description: 'Location code of a store, such as 2010' nullable: true facings: type: array items: $ref: '#/components/schemas/FacingResponseV11' description: 'Facings, will only have a value if facings are requested in the search query' nullable: true readOnly: true description: 'Models a single bay in an aisle in a store, with optional facings' BayPlanogram: required: - planogramConfidence type: object properties: planogramKey: type: string description: Unique id for the matched planogram nullable: true baySequence: type: integer description: The sequence of this bay with the planogram format: int32 planogramConfidence: type: number description: The confidence of this planograms assignment - floating point format: decimal planogramAssignment: $ref: '#/components/schemas/PlanogramAssignment' matchedItems: type: array items: type: string description: List of matched items nullable: true lastModifiedUTC: type: string description: Last modified date format: date-time nullable: true description: Details about the matched planogram against a bay BayResponse: required: - bayNumber - description type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true bayNumber: minLength: 1 type: string description: A number that represents the bay number in the context of a parent aisle description: minLength: 1 type: string description: The description of the bay in the context of a parent aisle departmentId: type: string description: Is the reference to the department Id nullable: true departmentName: type: string description: Is the reference to the department name nullable: true lastModifiedDate: type: string description: 'Last time the record was modified, in local timezone' format: date-time nullable: true aisleNumber: type: integer description: 'AisleNumber such as 1, 2 and etc' format: int32 countryCode: $ref: '#/components/schemas/CountryCodes' locationCode: type: string description: 'Location code of a store, such as 2010' nullable: true description: Models a single bay in an aisle in a store BaysInclusions: enum: - Facings - None type: string description: Supported inclusions in the bays response BaysResponseV11: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true bays: type: array items: $ref: '#/components/schemas/BayAndFacingsResponseV11' description: Bays nullable: true description: Bays response Classification: required: - code - description - isShoppable type: object properties: code: minLength: 1 type: string description: Classification code description: minLength: 1 type: string description: Description of the classification. eg Normal racking description: "Aisle classification details. This is computed based on\r\nconfiguration aligning to the Operations Aisle / Bay Guide\r\nhttps://intranet.bunnings.com.au/BunningsUtils/WCCProxy.jsp?dDocName=BUNAU_553173" ClassificationsResponse: type: object properties: classifications: type: array items: $ref: '#/components/schemas/Classification' description: Classifications nullable: true description: Classifications response CountryCodes: enum: - AU - NZ type: string description: Supported Bunnings country codes. EntryPoint: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true readOnly: true description: Entry into the spaces API. Provides access to all root operations FacingDetail: type: object properties: firstAdded: type: string description: "The UTC datetime offset of when this facing was first added in this bay\r\nThis first added datetime is the datetime we first saw this facing in\r\nAilseBay message, not the actual date when the facing is physically added to the bay\r\nPlease compare this date with FirstAdded date on Bay level to determine if this\r\nis a new facing or not" format: date-time nullable: true removed: type: string description: "The UTC date of when this facing was no longer present.\r\nthis will only have a value if the facing no longer exists in the bay in store.\r\nAn example of this is if the facing existed in the past and has since been removed\r\nhowever it still exists on the bay plan" format: date-time nullable: true sequence: type: integer description: AilseBay Sequence format: int32 nullable: true price: type: number description: Price of the item format: decimal nullable: true description: 'Calculated from the price audit data available for a specific store. If this data is returned, then the item exists in that store on the selected bay. If data is not returned, then this store does not have the item on the selected bay. This data is used to calculate the planAlignment.' FacingResponse: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true itemNumber: pattern: '[0-9]{7}' type: string description: The item number of what was scanned in the bay for that sequence nullable: true bayNumber: type: integer description: A number that represents the bay number in the context of a parent aisle format: int32 aisleNumber: type: integer description: 'AisleNumber such as 1, 2 and etc' format: int32 nullable: true countryCode: type: string description: 'Country code: AU or NZ' nullable: true locationCode: type: string description: 'Location code of a store, such as 2010' nullable: true effectiveSequence: type: integer description: 'This is the position of the facing relative to other facings in a non-continuous sequence, starting from the top left of the bay' format: int32 description: 'Represents a facing in a bay, scanned for the purpose of price audit or as part of a planogram' FacingResponseV11: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true itemNumber: pattern: '[0-9]{7}' type: string description: The item number of what was scanned in the bay for that sequence nullable: true bayNumber: type: integer description: A number that represents the bay number in the context of a parent aisle format: int32 aisleNumber: type: integer description: 'AisleNumber such as 1, 2 and etc' format: int32 nullable: true countryCode: type: string description: 'Country code: AU or NZ' nullable: true locationCode: type: string description: 'Location code of a store, such as 2010' nullable: true effectiveSequence: type: integer description: 'This is the position of the facing relative to other facings in a non-continuous sequence, starting from the top left of the bay' format: int32 description: 'Represents a facing in a bay, scanned for the purpose of price audit or as part of a planogram' FacingsResponse: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true facings: type: array items: $ref: '#/components/schemas/FacingResponse' description: Facings nullable: true description: Facings response ForbiddenProblemDetails: type: object properties: type: type: string description: "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when\r\ndereferenced, it provide human-readable documentation for the problem type\r\n(e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be\r\n\"about:blank\"." nullable: true title: type: string description: "A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence\r\nof the problem, except for purposes of localization(e.g., using proactive content negotiation;\r\nsee[RFC7231], Section 3.4)." nullable: true status: type: integer description: 'The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.' format: int32 nullable: true detail: type: string description: A human-readable explanation specific to this occurrence of the problem. nullable: true instance: type: string description: A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced. nullable: true additionalProperties: { } description: A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807 GetDepartmentResponse: required: - id - name type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true readOnly: true id: minLength: 1 type: string description: The Id assigned to this department record name: minLength: 1 type: string description: The department's name description: type: string description: The department's description nullable: true description: Returns a known department GetDepartmentsResponse: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true departments: type: array items: $ref: '#/components/schemas/GetDepartmentResponse' description: Departments nullable: true description: Returns a list of departments HateOasLinks: type: object properties: rel: type: string description: Gets or sets the rel. nullable: true href: type: string description: Gets or sets the href. nullable: true methods: type: array items: type: string description: Gets or sets the methods. nullable: true description: Hypermedia links MapResponse: required: - countryCode - locationCode type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true countryCode: $ref: '#/components/schemas/CountryCodes' locationCode: minLength: 1 pattern: '[1-9][0-9]{3}' type: string description: Supported Bunnings location code aisles: type: array items: $ref: '#/components/schemas/BaseAisleAndBaysResponse' description: 'Aisles, will only have a value is Aisles or AislesAndBays are requested in the search query' nullable: true description: 'Maps response, note: we might have rels off to the real map in future' MapsInclusions: enum: - Aisles - AisleAndBays - None type: string description: Supported inclusions in the maps response MapsResponse: type: object properties: _meta: type: object additionalProperties: type: string description: Gets or sets the meta. nullable: true readOnly: true _links: type: array items: $ref: '#/components/schemas/HateOasLinks' description: The links. nullable: true maps: type: array items: $ref: '#/components/schemas/MapResponse' description: Maps nullable: true description: Maps response MissingResourceProblemDetails: type: object properties: type: type: string description: "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when\r\ndereferenced, it provide human-readable documentation for the problem type\r\n(e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be\r\n\"about:blank\"." nullable: true title: type: string description: "A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence\r\nof the problem, except for purposes of localization(e.g., using proactive content negotiation;\r\nsee[RFC7231], Section 3.4)." nullable: true status: type: integer description: 'The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.' format: int32 nullable: true detail: type: string description: A human-readable explanation specific to this occurrence of the problem. nullable: true instance: type: string description: A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced. nullable: true additionalProperties: { } description: A machine-readable format for specifying resource not found errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807 Plan: type: object properties: baySequence: type: integer description: The sequence of this facing within the planned bay format: int32 description: 'Calculated from the planogram data. If this data is returned, then the item exists on the selected planogram. If data is not returned, then the item does not exist on the selected planogram. This data is used to calculate the planAlignment.' PlanAlignment: type: object properties: facing: $ref: '#/components/schemas/PlanAlignmentFacing' itemNumber: $ref: '#/components/schemas/PlanAlignmentItemNumber' description: 'Represents the alignment of the facingDetails data when compared to the assigned planogram. If a bay does not have a planogram assigned, then this object is omitted from the response.' PlanAlignmentFacing: enum: - PlanFacingOnly - StoreFacingOnly - FacingAligned - Other type: string description: "Describes whether an item is aligned to the store and/or planogram, when comparing the data within a single\r\ninstance within the bays/facings array\r\n
  • PlanFacingOnly : facingDetail is empty and plan contains\r\ndata for this single item within the facing array.\r\nBusiness Description: Item is not on shelf but is listed in the planogram.
  • StoreFacingOnly : facingDetail contains data and plan is empty for this single item within the facing array.\r\nBusiness Description: Item is on shelf and is not listed in planogram.
  • FacingAligned : facingDetail contains data and plan contains data for this single item within the facing array.\r\nBusiness Description: Item is on shelf and is on planogram.
  • Other : facingDetail is empty and plan is empty for this single item within the facing array.\r\nBusiness Description: Item is not on shelf and there are no planogram details.
" PlanAlignmentItemNumber: enum: - Aligned - PlanOnly - StoreOnly - Other type: string description: " Describes whether an item is aligned to the store and/or planogram for all instances within\r\n the facing array\r\n
  • Aligned : facingDetail contains data and plan contains data, when compared across all matching items within facing array.\r\n Business Description: the item Number exists in the store and on the plan for this bay,\r\n but not necessarily for this effectiveSequence.
  • PlanOnly : facingDetail is empty and plan contains data, when compared across all matching items within facing array.\r\n Business Description: the item Number exists on the plan only for this bay, but not necessarily for this effectiveSequence.
  • StoreOnly : facingDetail contains data and plan is empty, when compared across all matching items within facing array.\r\n Business Description: the item Number exists in the store only for this bay, but not necessarily for this effectiveSequence.
  • Other : facingDetail is empty and plan is empty when compared across all matching items within facing array.\r\n Business Description: item is not on shelf and there are no planogram details.
" PlanogramAssignment: enum: - NotAssigned - AutomaticallyAssigned - FromFloorplan - ManuallyAssigned type: string description: Strategy used to assign the planogram ProblemDetails: type: object properties: type: type: string description: "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when\r\ndereferenced, it provide human-readable documentation for the problem type\r\n(e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be\r\n\"about:blank\"." nullable: true title: type: string description: "A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence\r\nof the problem, except for purposes of localization(e.g., using proactive content negotiation;\r\nsee[RFC7231], Section 3.4)." nullable: true status: type: integer description: 'The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.' format: int32 nullable: true detail: type: string description: A human-readable explanation specific to this occurrence of the problem. nullable: true instance: type: string description: A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced. nullable: true additionalProperties: { } description: A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807. ShelfLabel: type: object properties: code: type: string description: Shelf label code nullable: true description: Shelf label details for a facing UnhandledProblemDetails: type: object properties: type: type: string description: "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when\r\ndereferenced, it provide human-readable documentation for the problem type\r\n(e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be\r\n\"about:blank\"." nullable: true title: type: string description: "A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence\r\nof the problem, except for purposes of localization(e.g., using proactive content negotiation;\r\nsee[RFC7231], Section 3.4)." nullable: true status: type: integer description: 'The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.' format: int32 nullable: true detail: type: string description: A human-readable explanation specific to this occurrence of the problem. nullable: true instance: type: string description: A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced. nullable: true additionalProperties: { } description: A machine-readable format for specifying errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807 ValidationError: type: object properties: message: type: string description: Custom validation error message. nullable: true code: type: string description: "Custom error code.\r\nExample: E-TRA-0001\r\nFind details here https://bunnings.atlassian.net/wiki/spaces/BAT/pages/6715213433/Error+Codes" nullable: true instance: type: string description: The action route the validation failed against. nullable: true correlationId: type: string description: The provided correlation id. nullable: true traceId: type: string description: Internal trace id. nullable: true description: Custom validation error with error code. ValidationErrorsProblemDetails: type: object properties: type: type: string description: "A URI reference [RFC3986] that identifies the problem type. This specification encourages that, when\r\ndereferenced, it provide human-readable documentation for the problem type\r\n(e.g., using HTML [W3C.REC-html5-20141028]). When this member is not present, its value is assumed to be\r\n\"about:blank\"." nullable: true title: type: string description: "A short, human-readable summary of the problem type.It SHOULD NOT change from occurrence to occurrence\r\nof the problem, except for purposes of localization(e.g., using proactive content negotiation;\r\nsee[RFC7231], Section 3.4)." nullable: true status: type: integer description: 'The HTTP status code([RFC7231], Section 6) generated by the origin server for this occurrence of the problem.' format: int32 nullable: true detail: type: string description: A human-readable explanation specific to this occurrence of the problem. nullable: true instance: type: string description: A URI reference that identifies the specific occurrence of the problem.It may or may not yield further information if dereferenced. nullable: true errors: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ValidationError' nullable: true description: "Returns list of custom validation error with error code.\r\nExample:\r\n \"errors\": {\r\n \"transactionRef\": [\r\n { \"message\": \"Transaction reference number must be 20 digits number.\", \"code\": \"E-TRA-0001\" },\r\n { \"message\": \"Transaction reference number cannot start with 6 (this is just an example).\", \"code\": \"E-TRA-0002\" }\r\n ],\r\n \"end\": [\r\n { \"message\": \"The selected date range must be no larger than 90 days, selected range is 113 days\", \"code\": \"E-TRA-003\" }\r\n ]\r\n}\r\nFind details here https://bunnings.atlassian.net/wiki/spaces/BAT/pages/6715213433/Error+Codes" nullable: true additionalProperties: { } description: A machine-readable format for specifying validation errors in HTTP API responses based on https://tools.ietf.org/html/rfc7807 securitySchemes: oauth2: type: oauth2 flows: implicit: authorizationUrl: https://authorisation-snd.api.bunnings.com.au/connect/authorize scopes: spc:pub: This product scope provides general public access to the spaces ecosystem clientCredentials: tokenUrl: https://authorisation-snd.api.bunnings.com.au/connect/token scopes: spc:pub: This product scope provides general public access to the spaces ecosystem bearer: type: http description: JWT Authorization header using the Bearer scheme. scheme: bearer bearerFormat: JWT security: - oauth2: - spc:pub - bearer: - spc:pub tags: - name: Aisles description: Operations related to aisles - name: Bays description: Operations related to bays - name: Department description: Operations related to departments - name: Discovery description: Discovery endpoints used to get initial links - name: Facings description: Operations related to facings - name: Maps description: Operations related to maps