{ "openapi": "3.0.1", "info": { "title": "TMF 691 Federated ID", "description": "This is Swagger UI environment generated for the TMF FederatedID specification", "license": { "name": "Apache 2.0", "url": "https://osl.etsi.org" }, "version": "1.0.0" }, "externalDocs": { "description": "TMF API Tables", "url": "https://www.tmforum.org/oda/open-apis/table" }, "servers": [ { "url": "https://portal.openslice.eu/tmf-api", "description": "Generated server url" } ], "security": [ { "security_auth": [] } ], "tags": [ { "name": "userinfo", "description": "the userinfo API" } ], "paths": { "/userinfo": { "get": { "tags": [ "userinfo" ], "summary": "Retrieve user identity information", "operationId": "retrieveUserIdentity", "parameters": [ { "name": "Authorization", "in": "header", "description": "token to be passed as a header linked to the user whose identity is requested", "required": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "To apply specific filter in the response ", "required": false, "schema": { "type": "string" } } ], "responses": { "500": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } }, "200": { "description": "User identity information provided", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } }, "400": { "description": "Invalid Token", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } }, "401": { "description": "Invalid Token", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } }, "405": { "description": "Method not Allowed", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoType" } } } } } } } }, "components": { "schemas": { "EntitlementType": { "required": [ "action", "function" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "function": { "type": "string" }, "action": { "type": "string" } }, "description": "information about individual entitlements to define access levels to operate over different functions that can be defined in an asset" }, "GeographicAddressType": { "required": [ "country", "locality", "postcode", "stateOrProvince", "streetName", "streetNr", "streetType" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "streetNr": { "type": "string", "description": "Required if href not included. Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses" }, "streetNrSuffix": { "type": "string", "description": "The street number suffix (or suffix of first number for aranged address)" }, "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" }, "streetName": { "type": "string", "description": "Required if href not included. Name of the street or other street type" }, "streetType": { "type": "string", "description": "Required if href not included. Alley, avenue, street, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf" }, "streetSuffix": { "type": "string", "description": "A modifier denoting a relative direction (E, W, S, N)" }, "postcode": { "type": "string", "description": "Required if href not included. Descriptor for a postal delivery area (also known as zipcode)" }, "locality": { "type": "string", "description": "Required if href not included. An area of defined or undefined boundaries within a local authority or other legislatively defined area, usually rural or semi-rural in nature, or a suburb, a bounded locality within a city, town or shire principally of urban character " }, "city": { "type": "string", "description": "City that the address is in" }, "stateOrProvince": { "type": "string", "description": "Required if href not included. the State or Province that the address is in" }, "country": { "type": "string", "description": "Required if href not included. Country that the address is in" }, "geographicLocation": { "$ref": "#/components/schemas/GeographicLocationRefOrValueType" }, "geographicSubAddress": { "$ref": "#/components/schemas/GeographicSubAddressType" } }, "description": "Structure including the End-User's preferred postal address" }, "GeographicLocationRefOrValueType": { "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A Link to the schema describing this REST Resource" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "id": { "type": "string", "description": "Unique identifier of the location entity within the server" }, "geographicPoint": { "$ref": "#/components/schemas/GeographicPointType" } }, "description": "A geo location reference, allows describing through coordinate(s) a point, a line or a space" }, "GeographicPointType": { "required": [ "accuracy", "spatialRef", "x", "y" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "accuracy": { "type": "string", "description": "Accuracy of the coordinate specified" }, "spatialRef": { "type": "string", "description": "Geocoding referential" }, "x": { "type": "string", "description": ". x coordinate (usually latitude)" }, "y": { "type": "string", "description": "y coordinate (usually longitude)" }, "z": { "type": "string", "description": "z coordinate (usually elevation)" } }, "description": "A list of geo points. A GeoPoint defines a geographic point through coordinates" }, "GeographicSubAddressType": { "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "subUnitType": { "type": "string", "description": "the type of subunit (e.g.: BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF)" }, "subUnitNumber": { "type": "string", "description": "the discriminator used for the subunit often just a simple number (e.g.: 5 for FLAT 5), may also be a range" }, "levelType": { "type": "string", "description": "Describes level types within a building (e.g.: BASEMENT) " }, "levelNumber": { "type": "string", "description": "used where a level type may be repeated (e.g.: BASEMENT 1, BASEMENT 2)" }, "buildingName": { "type": "string", "description": "Allows for buildings that have well-known names" }, "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" } }, "description": "A list of sub addresses. It 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." }, "IdentificationType": { "required": [ "country", "identificationId" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "identificationId": { "type": "string", "description": "Identification number of the document" }, "country": { "type": "string", "description": "Country that issued the document" }, "issuingAuthority": { "type": "string", "description": "Authority that issued the legal identification (e.g.: social security, town hall, ...)" }, "issuingDate": { "type": "string", "format": "date-time" } }, "description": "Somebody's national ID" }, "UserAssetType": { "required": [ "entityType", "id" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "entityType": { "type": "string", "description": "Type of managed entity (e.g.: product, resource, service, customer, account)", "enum": [ "customer", "account", "product", "service", "resource" ] }, "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", "enum": [ "mobile", "landline", "iptv", "broadband", "email", "invoicing" ] }, "id": { "type": "string", "description": "Unique identifier of referenced entity within the entity/asset pair (customerId, accountId, mobile line number, ...)" }, "role": { "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": { "uniqueItems": true, "type": "array", "description": "information about individual entitlements to define access levels to operate over different functions that can be defined in an asset", "items": { "$ref": "#/components/schemas/EntitlementType" } } }, "description": "List of additional profile information" }, "UserInfoType": { "required": [ "sub" ], "type": "object", "properties": { "uuid": { "type": "string" }, "@baseType": { "type": "string", "description": "When sub-classing, this defines the super-class" }, "@schemaLocation": { "type": "string", "description": "A URI to a JSON-Schema file that defines additional attributes and relationships" }, "@type": { "type": "string" }, "href": { "type": "string", "description": "Unique reference of the entity" }, "name": { "type": "string", "description": "Name of the entity" }, "sub": { "type": "string", "description": "Subject - Unique Identifier for the End-User" }, "given_name": { "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" }, "family_name": { "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" }, "middle_name": { "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" }, "nickname": { "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" }, "preferred_username": { "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" }, "email": { "type": "string", "description": "End-User's preferred e-mail address. Its value MUST conform to the [RFC5322] addr-spec syntax" }, "phone_number": { "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" }, "gender": { "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" }, "birthdate": { "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" }, "locale": { "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" }, "zoneinfo": { "type": "string", "description": "String from zoneinfo time zone database representing the End-User's time zone. For example, Europe/Paris or America/Los_Angeles" }, "profile": { "type": "string", "description": "URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User" }, "picture": { "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" }, "website": { "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" }, "address": { "$ref": "#/components/schemas/GeographicAddressType" }, "legalId": { "uniqueItems": true, "type": "array", "description": "Identification documentation of the contact", "items": { "$ref": "#/components/schemas/IdentificationType" } }, "userAssets": { "uniqueItems": true, "type": "array", "description": "List of additional profile information", "items": { "$ref": "#/components/schemas/UserAssetType" } } } } }, "securitySchemes": { "security_auth": { "type": "oauth2", "scheme": "bearer", "bearerFormat": "JWT", "flows": { "authorizationCode": { "authorizationUrl": "https://portal.openslice.eu/auth/realms/openslice/protocol/openid-connect/auth", "tokenUrl": "https://portal.openslice.eu/auth/realms/openslice/protocol/openid-connect/token", "scopes": { "read": "read scope", "write": "write scope" } } } } } } }