{ "swagger": "2.0", "info": { "title": "Federated ID", "description": "This is Swagger UI environment generated for the TMF FederatedID specification", "version": "4.0" }, "host": "serverRoot", "basePath": "/tmf-api/openid/v4", "schemes": [ "http" ], "consumes": [ "application/json;charset=utf-8" ], "produces": [ "application/json;charset=utf-8" ], "tags": [ { "name": "userinfo" }, { "name": "events subscription" } ], "paths": { "/userinfo": { "get": { "operationId": "listUserinfo", "summary": "List or find Userinfo objects", "description": "This operation list or find Userinfo entities", "tags": [ "userinfo" ], "parameters": [ { "name": "Authorization", "in": "header", "description": "token to be passed as a header linked to the user whose identity is requested", "required": true, "type": "string" }, { "name": "fields", "description": "Comma-separated properties to be provided in response", "required": false, "in": "query", "type": "string" }, { "name": "offset", "description": "Requested index for start of resources to be provided in response", "required": false, "in": "query", "type": "integer" }, { "name": "limit", "description": "Requested number of resources to be provided in response", "required": false, "in": "query", "type": "integer" } ], "responses": { "200": { "description": "Success", "headers": { "X-Result-Count": { "description": "Actual number of items returned in the response body", "type": "integer" }, "X-Total-Count": { "description": "Total number of items matching criteria", "type": "integer" } }, "schema": { "type": "array", "items": { "$ref": "#/definitions/Userinfo" } } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/userinfo/{id}": { "get": { "operationId": "retrieveUserinfo", "summary": "Retrieves a Userinfo by ID", "description": "This operation retrieves a Userinfo entity. Attribute selection is enabled for all first level attributes.", "tags": [ "userinfo" ], "parameters": [ { "name": "Authorization", "in": "header", "description": "token to be passed as a header linked to the user whose identity is requested", "required": true, "type": "string" }, { "name": "id", "description": "Identifier of the Userinfo", "required": true, "type": "string", "in": "path" }, { "name": "fields", "description": "Comma-separated properties to provide in response", "required": false, "type": "string", "in": "query" } ], "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/Userinfo" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/hub": { "post": { "operationId": "registerListener", "summary": "Register a listener", "description": "Sets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", "tags": [ "events subscription" ], "parameters": [ { "name": "data", "schema": { "$ref": "#/definitions/EventSubscriptionInput" }, "required": true, "in": "body", "description": "Data containing the callback endpoint to deliver the information" } ], "responses": { "201": { "description": "Subscribed", "schema": { "$ref": "#/definitions/EventSubscription" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method Not allowed", "schema": { "$ref": "#/definitions/Error" } }, "409": { "description": "Conflict", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/hub/{id}": { "delete": { "operationId": "unregisterListener", "summary": "Unregister a listener", "description": "Resets the communication endpoint address the service instance must use to deliver information about its health state, execution state, failures and metrics.", "tags": [ "events subscription" ], "parameters": [ { "name": "id", "type": "string", "required": true, "in": "path", "description": "The id of the registered listener" } ], "responses": { "204": { "description": "Deleted" }, "400": { "description": "Bad request", "schema": { "$ref": "#/definitions/Error" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/Error" } }, "403": { "description": "Forbidden", "schema": { "$ref": "#/definitions/Error" } }, "404": { "description": "Not Found", "schema": { "$ref": "#/definitions/Error" } }, "405": { "description": "Method not allowed", "schema": { "$ref": "#/definitions/Error" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/Error" } } } } } }, "definitions": { "Addressable": { "type": "object", "description": "Base schema for adressable entities", "properties": { "id": { "type": "string", "description": "unique identifier" }, "href": { "type": "string", "format": "uri", "description": "Hyperlink reference" } } }, "Attachment": { "type": "object", "description": "Complements the description of an element (for instance a product) through video, pictures...", "properties": { "id": { "example": "4aafacbd-11ff-4dc8-b445-305f2215715f", "type": "string", "description": "Unique identifier for this particular attachment" }, "href": { "example": "http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f", "type": "string", "format": "uri", "description": "URI for this Attachment" }, "attachmentType": { "example": "video", "type": "string", "description": "Attachment type such as video, picture" }, "content": { "type": "string", "format": "base64", "description": "The actual contents of the attachment object, if embedded, encoded as base64" }, "description": { "example": "Photograph of the Product", "type": "string", "description": "A narrative text describing the content of the attachment" }, "mimeType": { "type": "string", "description": "Attachment mime type such as extension file for video, picture and document" }, "name": { "type": "string", "description": "The name of the attachment" }, "url": { "example": "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f", "type": "string", "format": "uri", "description": "Uniform Resource Locator, is a web page address (a subset of URI)" }, "size": { "$ref": "#/definitions/Quantity", "description": "The size of the attachment." }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "The period of time for which the attachment is valid" } } }, "AttachmentRef": { "type": "object", "description": "Attachment reference. An attachment complements the description of an element (for instance a product) through video, pictures", "properties": { "id": { "type": "string", "description": "Unique-Identifier for this attachment" }, "href": { "type": "string", "format": "uri", "description": "URL serving as reference for the attachment resource" }, "description": { "type": "string", "description": "A narrative text describing the content of the attachment" }, "name": { "type": "string", "description": "Name of the related entity." }, "url": { "type": "string", "format": "uri", "description": "Link to the attachment media/content" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class Extensible name" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "AttachmentRefOrValue": { "type": "object", "description": "An attachment by value or by reference. An attachment complements the description of an element, for example through a document, a video, a picture.", "properties": { "id": { "example": "4aafacbd-11ff-4dc8-b445-305f2215715f", "type": "string", "description": "Unique identifier for this particular attachment" }, "href": { "example": "http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f", "type": "string", "format": "uri", "description": "URI for this Attachment" }, "attachmentType": { "example": "video", "type": "string", "description": "Attachment type such as video, picture" }, "content": { "type": "string", "format": "base64", "description": "The actual contents of the attachment object, if embedded, encoded as base64" }, "description": { "example": "Photograph of the Product", "type": "string", "description": "A narrative text describing the content of the attachment" }, "mimeType": { "type": "string", "description": "Attachment mime type such as extension file for video, picture and document" }, "name": { "type": "string", "description": "The name of the attachment" }, "url": { "example": "http://host/Content/4aafacbd-11ff-4dc8-b445-305f2215715f", "type": "string", "format": "uri", "description": "Uniform Resource Locator, is a web page address (a subset of URI)" }, "size": { "$ref": "#/definitions/Quantity", "description": "The size of the attachment." }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "The period of time for which the attachment is valid" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class Extensible name" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "Entitlement": { "type": "object", "description": "An Entitlement defines access levels to operate over a given function that can be included in an asset.", "properties": { "id": { "type": "string", "description": "Identifier of the entitlement." }, "action": { "type": "string", "description": "Level of access granted as part of the permission." }, "function": { "type": "string", "description": "Specific function that can be managed over a given asset." } } }, "EntityRef": { "type": "object", "description": "Entity reference schema to be use for all entityRef class.", "properties": { "id": { "type": "string", "description": "unique identifier" }, "href": { "type": "string", "format": "uri", "description": "Hyperlink reference" }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class Extensible name" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "Extensible": { "type": "object", "description": "Base Extensible schema for use in TMForum Open-APIs", "properties": { "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class Extensible name" } } }, "GeographicAddress": { "type": "object", "description": "Structured textual way of describing how to find a Property in an urban area (country properties are often defined differently).\nNote : Address corresponds to SID UrbanPropertyAddress", "properties": { "id": { "type": "string", "description": "Unique identifier of the place" }, "href": { "type": "string", "description": "Unique reference of the place" }, "city": { "type": "string", "description": "City that the address is in" }, "country": { "type": "string", "description": "Country that the address is in" }, "locality": { "type": "string", "description": "An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi rural in nature. [ANZLIC-STREET], or a suburb, a bounded locality within a city, town or shire principally of urban character [ANZLICSTREET]" }, "name": { "type": "string", "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]" }, "postcode": { "type": "string", "description": "descriptor for a postal delivery area, used to speed and simplify the delivery of mail (also know as zipcode)" }, "stateOrProvince": { "type": "string", "description": "the State or Province that the address is in" }, "streetName": { "type": "string", "description": "Name of the street or other street type" }, "streetNr": { "type": "string", "description": "Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses" }, "streetNrLast": { "type": "string", "description": "Last number in a range of street numbers allocated to a property" }, "streetNrLastSuffix": { "type": "string", "description": "Last street number suffix for a ranged address" }, "streetNrSuffix": { "type": "string", "description": "the first street number suffix" }, "streetSuffix": { "type": "string", "description": "A modifier denoting a relative direction" }, "streetType": { "type": "string", "description": "alley, avenue, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf " }, "geographicLocation": { "$ref": "#/definitions/GeographicLocationRefOrValue" }, "geographicSubAddress": { "type": "array", "items": { "$ref": "#/definitions/GeographicSubAddress" } } } }, "GeographicLocation": { "type": "object", "description": "A GeographicLocation is a pure-virtual super-class to the GeoJSON-aligned geometries of Point (addresses and locations), MultiPoint, LineString (streets, highways and boundaries), MultiLineString and Polygon (countries, provinces, tracts of land). Use the @type attribute to specify which of these is being specified by the geometry attribute.", "required": [ "@type" ], "properties": { "id": { "type": "string", "description": "Unique identifier of the geographic location" }, "href": { "type": "string", "description": "An URI used to access to the geographic location resource" }, "name": { "type": "string", "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]" }, "@type": { "type": "string", "description": "The name of the GeoJSON structure used in the geometry attribute" } } }, "GeographicLocationRef": { "type": "object", "properties": { "id": { "type": "string", "description": "unique identifier" }, "href": { "type": "string", "format": "uri", "description": "Hyperlink reference" }, "name": { "type": "string", "description": "Name of the related entity." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class Extensible name" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } }, "required": [ "id" ] }, "GeographicLocationRefOrValue": { "type": "object", "description": "A GeographicLocation is a pure-virtual super-class to the GeoJSON-aligned geometries of Point (addresses and locations), MultiPoint, LineString (streets, highways and boundaries), MultiLineString and Polygon (countries, provinces, tracts of land). Use the @type attribute to specify which of these is being specified by the geometry attribute.", "required": [ "@type" ], "properties": { "id": { "type": "string", "description": "Unique identifier of the place" }, "href": { "type": "string", "description": "Unique reference of the place" }, "name": { "type": "string", "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "The name of the GeoJSON structure used in the geometry attribute" }, "@referredType": { "type": "string", "description": "The actual type of the target instance when needed for disambiguation." } } }, "GeographicSubAddress": { "type": "object", "description": "Representation of a GeographicSubAddress \nIt is used for addressing within a property in an urban area (country properties are often defined differently). It may refer to a building, a building cluster, or a floor of a multistory building.", "properties": { "id": { "type": "string", "description": "Unique Identifier of the subAddress" }, "href": { "type": "string", "description": "Link to the subAddress" }, "buildingName": { "type": "string", "description": "allows for buildings that have well-known names" }, "levelNumber": { "type": "string", "description": "used where a level type may be repeated e.g. BASEMENT 1, BASEMENT 2" }, "levelType": { "type": "string", "description": "describes level types within a building" }, "name": { "type": "string", "description": "Name of the subAddress to identify it with a meaningful identification" }, "privateStreetName": { "type": "string", "description": "private streets internal to a property (e.g. a university) may have internal names that are not recorded by the land title office." }, "privateStreetNumber": { "type": "string", "description": "private streets numbers internal to a private street" }, "subAddressType": { "type": "string", "description": "Type of subAddress : it can be a subunit or a private street" }, "subUnitNumber": { "type": "string", "description": "the discriminator used for the subunit\noften just a simple number e.g. FLAT 5, may also be a range" }, "subUnitType": { "type": "string", "description": "the type of subunit\ne.g.BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF" } } }, "IndividualIdentification": { "type": "object", "description": "Represents our registration of information used as proof of identity by an individual (passport, national identity card, drivers license, social security number, birth certificate)", "properties": { "identificationId": { "type": "string", "description": "Identifier" }, "identificationType": { "type": "string", "description": "Identification type (passport, national identity card, drivers license, social security number, birth certificate)" }, "issuingAuthority": { "type": "string", "description": "Authority which has issued the identifier, such as: social security, town hall" }, "issuingDate": { "type": "string", "format": "date-time", "description": "Date at which the identifier was issued" }, "attachment": { "$ref": "#/definitions/AttachmentRefOrValue" }, "validFor": { "$ref": "#/definitions/TimePeriod", "description": "The period for which the identification information is valid." } } }, "Place": { "type": "object", "description": "Place reference. Place defines the places where the products are sold or delivered.", "properties": { "id": { "type": "string", "description": "Unique identifier of the place" }, "href": { "type": "string", "description": "Unique reference of the place" }, "name": { "type": "string", "description": "A user-friendly name for the place, such as [Paris Store], [London Store], [Main Home]" } } }, "Quantity": { "type": "object", "description": "An amount in a given unit", "properties": { "amount": { "default": 1, "type": "number", "format": "float", "description": "Numeric value in a given unit" }, "units": { "type": "string", "description": "Unit" } } }, "TimePeriod": { "type": "object", "description": "A period of time, either as a deadline (endDateTime only) a startDateTime only, or both", "properties": { "endDateTime": { "example": "1985-04-12T23:20:50.52Z", "type": "string", "format": "date-time", "description": "End of the time period, using IETC-RFC-3339 format" }, "startDateTime": { "example": "1985-04-12T23:20:50.52Z", "type": "string", "format": "date-time", "description": "Start of the time period, using IETC-RFC-3339 format" } } }, "UserAsset": { "type": "object", "required": [ "entityType", "id" ], "properties": { "id": { "example": "f066ffd5-e685-43bc-ad57-bfb7639decb1", "type": "string", "description": "Unique identifier of referenced entity within the entity/asset pair (customerId, accountId, mobile line number, ...)" }, "assetType": { "type": "string", "description": "Second level to define the type of managed element for product/service/resource managed entities (e.g.: mobile line subscription, video platform license, mobile equipment, etc). Allows identifying the specific asset within the server referenced. Supported values are implementation and application specific. Other values can be added if those listed are not enough" }, "entityType": { "type": "string", "description": "Type of managed entity (e.g.: product, resource, service, customer, account)" }, "role": { "example": "owner", "type": "string", "description": "Represents the part played by an individual in relation to being granted a set of entitlements for manageable assets (e.g.: owner, user, viewer, ...)" }, "entitlement": { "type": "array", "items": { "$ref": "#/definitions/Entitlement" }, "description": "information about individual entitlements to define access levels to operate over different functions that can be defined in an asset" } } }, "Userinfo": { "type": "object", "required": [ "name", "sub" ], "properties": { "birthdate": { "example": "1970-11-02", "type": "string", "description": "End-User's birthday, represented as an [ISO8601-2004] YYYY-MM-DD format. The year MAY be 0000, indicating that it is omitted. To represent only the year, YYYY format is allowed. Note that depending on the underlying platform's date related function, providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process the dates" }, "email": { "example": "jane.doe@email.com", "type": "string", "description": "End-User's preferred e-mail address. Its value MUST conform to the [RFC5322] addr-spec syntax" }, "email_verified": { "default": false, "type": "boolean", "description": "True if the user's email has been verified." }, "family_name": { "example": "Doe", "type": "string", "description": "Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or no family name; all can be present, with the names being separated by space characters" }, "gender": { "example": "female", "type": "string", "description": "End-User's gender. Values defined by this specification are female and male. Other values MAY be used when neither of the defined values are applicable" }, "given_name": { "example": "Jane", "type": "string", "description": "Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names; all can be present, with the names being separated by space characters" }, "locale": { "example": "en", "type": "string", "description": "End-User's locale, represented as a [RFC5646] language tag. This is typically an [ISO639-1] language code in lowercase and an [ISO3166-1] country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a compatibility note, some implementations have used an underscore as the separator rather than a dash, for example, en_US" }, "middle_name": { "example": "Mary", "type": "string", "description": "Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be present, with the names being separated by space characters. Also note that in some cultures, middle names are not used" }, "name": { "example": "Jane Mary Doe", "type": "string", "description": "End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the End-User's locale and preferences" }, "nickname": { "example": "JaneDoe", "type": "string", "description": "Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of Mike might be returned alongside a given_name value of Michael" }, "phone_number": { "example": "+1 (425) 555-1212", "type": "string", "description": "End-User's preferred telephone number. [E.164] is RECOMMENDED as the format of this Claim, for example, +1 (425) 555-1212 or +56 82) 687 2400. If the phone number contains an extension, it is RECOMMENDED that the extension be represented using the [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678" }, "phone_number_verified": { "default": false, "type": "boolean", "description": "True if the user's phone number has been verified." }, "picture": { "example": "https://some.url.com/janeDoe.jpg", "type": "string", "description": "URL of the End-User's profile picture. This URL MUST refer to an image file (for example, a PNG, JPEG, or GIF image file), rather than to a Web page containing an image. Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying when describing the End-User, rather than an arbitrary photo taken by the End-User" }, "preferred_username": { "example": "janeDoe", "type": "string", "description": "Shorthand name by which the End-User wishes to be referred to at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string including special characters such as @, /, or whitespace" }, "profile": { "example": "https://my.blog.com/janeDoe", "type": "string", "description": "URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User" }, "sub": { "example": "a066ffd5-f685-43bc-ad57-bfb7639decb0", "type": "string", "description": "Subject - Unique Identifier for the End-User" }, "website": { "example": "https://janedoe.com", "type": "string", "description": "URL of the End-User's Web page or blog. This Web page SHOULD contain information published by the End-User or an organization that the End-User is affiliated with" }, "zoneinfo": { "example": "America/Los_Angeles", "type": "string", "description": "String from zoneinfo time zone database representing the End-User's time zone. For example, Europe/Paris or America/Los_Angeles" }, "address": { "$ref": "#/definitions/GeographicAddress", "description": "Structure including the End-User's preferred postal address" }, "legalId": { "type": "array", "items": { "$ref": "#/definitions/IndividualIdentification" }, "description": "Identification documentation of the contact" }, "userAssets": { "type": "array", "items": { "$ref": "#/definitions/UserAsset" }, "description": "List of additional profile information" } } }, "EventSubscription": { "type": "object", "description": "Sets the communication endpoint address the service instance must use to deliver notification information", "required": [ "id", "callback" ], "properties": { "id": { "type": "string", "description": "Id of the listener" }, "callback": { "type": "string", "description": "The callback being registered." }, "query": { "type": "string", "description": "additional data to be passed" } } }, "EventSubscriptionInput": { "type": "object", "description": "Sets the communication endpoint address the service instance must use to deliver notification information", "required": [ "callback" ], "properties": { "callback": { "type": "string", "description": "The callback being registered." }, "query": { "type": "string", "description": "additional data to be passed" } } }, "Error": { "description": "Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)", "type": "object", "required": [ "code", "reason" ], "properties": { "code": { "type": "string", "description": "Application relevant detail, defined in the API or a common list." }, "reason": { "type": "string", "description": "Explanation of the reason for the error which can be shown to a client user." }, "message": { "type": "string", "description": "More details and corrective actions related to the error which can be shown to a client user." }, "status": { "type": "string", "description": "HTTP Error code extension" }, "referenceError": { "type": "string", "format": "uri", "description": "URI of documentation describing the error." }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class." }, "@schemaLocation": { "type": "string", "format": "uri", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string", "description": "When sub-classing, this defines the sub-class entity name." } } } } }