| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464 |
- openapi: 3.0.3
- info:
- title: User Management API
- description: API that provides management functionality for Open OSCAR Server operators.
- version: 1.0.0
- paths:
- /user:
- get:
- summary: Get all users
- description: Retrieve a list of all user accounts.
- responses:
- '200':
- description: Successful response containing a list of users.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- description: User's unique identifier.
- screen_name:
- type: string
- description: User's AIM screen name or ICQ UIN.
- is_icq:
- type: boolean
- description: If true, indicates an ICQ user instead of an AIM user.
- suspended_status:
- type: string
- description: User's suspended status
- is_bot:
- type: boolean
- nullable: true
- description: Indicates whether the user is a bot.
- post:
- summary: Create a new user
- description: Create a new AIM or ICQ user account.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - screen_name
- - password
- properties:
- screen_name:
- type: string
- description: The user's AIM screen name or ICQ UIN.
- password:
- type: string
- description: The user's password for account creation.
- responses:
- '201':
- description: User account created successfully.
- '400':
- description: Bad request. Invalid input data.
- '409':
- description: Conflict. A user with the specified screen name or ICQ UIN already exists.
- delete:
- summary: Delete a user
- description: Delete a user account specified by their screen name.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- screen_name:
- type: string
- description: The screen name of the user to delete.
- responses:
- '204':
- description: User deleted successfully.
- '404':
- description: User not found.
- /user/{screenname}/account:
- get:
- summary: Get account details for a specific screen name.
- description: Retrieve account details for a specific screen name.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- responses:
- '200':
- description: Successful response containing account details
- content:
- application/json:
- schema:
- type: object
- properties:
- id:
- type: string
- description: User's unique identifier.
- screen_name:
- type: string
- description: User's AIM screen name or ICQ UIN.
- profile:
- type: string
- description: User's AIM profile HTML.
- email_address:
- type: string
- description: User's email address
- confirmed:
- type: boolean
- description: User's account confirmation status
- is_icq:
- type: boolean
- description: If true, indicates an ICQ user instead of an AIM user.
- suspended_status:
- type: string
- description: User's suspended status
- is_bot:
- type: boolean
- nullable: true
- description: Indicates whether the user is a bot.
- '404':
- description: User not found.
- patch:
- summary: Update a user account
- description: Update attributes for a user account
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- suspended_status:
- type: string
- nullable: true
- enum: [ deleted, expired, suspended, suspended_age ]
- description: The suspended status of the account
- is_bot:
- type: boolean
- nullable: true
- description: >
- Indicates whether the account is for a bot. Bots are exempt from rate limiting... make sure you
- trust the bot and bot owner before enabling this flag.
- responses:
- '204':
- description: Successfully updated user account
- '304':
- description: Did not modify user account
- '400':
- description: Bad request when modifying user account
- '404':
- description: User not found
- /user/{screenname}/icon:
- get:
- summary: Get AIM buddy icon for a screen name
- description: Retrieve account buddy icon for a specific screen name.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- responses:
- '200':
- description: Successful response containing buddy icon bytes
- content:
- image/gif:
- schema:
- type: string
- format: binary
- image/jpeg:
- schema:
- type: string
- format: binary
- image/png:
- schema:
- type: string
- format: binary
- application/octet-stream:
- schema:
- type: string
- format: binary
- '404':
- description: User not found, or user has no buddy icon
- /session:
- get:
- summary: Get active sessions
- description: Retrieve a list of active sessions of logged in users.
- responses:
- '200':
- description: Successful response containing a list of active sessions.
- content:
- application/json:
- schema:
- type: object
- properties:
- count:
- type: integer
- description: The number of active sessions.
- sessions:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- description: User's unique identifier.
- screen_name:
- type: string
- description: User's AIM screen name or ICQ UIN.
- online_seconds:
- type: integer
- description: Number of seconds this user session has been online.
- is_away:
- type: boolean
- description: If true, indicates the user is away.
- away_message:
- type: string
- description: User's AIM away message HTML.
- idle_seconds:
- type: integer
- description: Number of seconds this user session has been idle. 0 if not idle.
- is_invisible:
- type: boolean
- description: If true, indicates the user is invisible.
- is_icq:
- type: boolean
- description: If true, indicates an ICQ user instead of an AIM user.
- instance_count:
- type: integer
- description: Number of concurrent clients signed in for this user.
- instances:
- type: array
- description: Array of session instances for this user.
- items:
- type: object
- properties:
- num:
- type: integer
- description: Instance number for this session instance.
- idle_seconds:
- type: integer
- description: Number of seconds this instance has been idle. 0 if not idle.
- is_away:
- type: boolean
- description: If true, indicates this instance is away.
- away_message:
- type: string
- description: This instance's AIM away message HTML.
- is_invisible:
- type: boolean
- description: If true, indicates this instance is invisible.
- remote_addr:
- type: string
- description: Remote IP address of the user's connection to BOS or TOC.
- remote_port:
- type: integer
- description: Remote port number of the user's connection to BOS or TOC.
- client_id:
- type: string
- description: Client name and version reported by the client at sign-on. Empty if not reported.
- /session/{screenname}:
- get:
- summary: Get active sessions for a given screen name or UIN.
- description: Retrieve a list of active sessions of a specific logged in user.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- responses:
- '200':
- description: Successful response containing a list of active sessions for the given screen name
- content:
- application/json:
- schema:
- type: object
- properties:
- count:
- type: integer
- description: The number of active sessions.
- sessions:
- type: array
- items:
- type: object
- properties:
- id:
- type: string
- description: User's unique identifier.
- screen_name:
- type: string
- description: User's AIM screen name or ICQ UIN.
- online_seconds:
- type: number
- description: Number of seconds this user session has been online.
- away_message:
- type: string
- description: User's AIM away message HTML. Empty if the user is not away.
- idle_seconds:
- type: number
- description: Number of seconds this user session has been idle. 0 if not idle.
- is_invisible:
- type: boolean
- description: If true, indicates the user is invisible.
- is_icq:
- type: boolean
- description: If true, indicates an ICQ user instead of an AIM user.
- instances:
- type: array
- description: Array of session instances for this user.
- items:
- type: object
- properties:
- num:
- type: integer
- description: Instance number for this session instance.
- idle_seconds:
- type: integer
- description: Number of seconds this instance has been idle. 0 if not idle.
- is_away:
- type: boolean
- description: If true, indicates this instance is away.
- away_message:
- type: string
- description: This instance's AIM away message HTML.
- is_invisible:
- type: boolean
- description: If true, indicates this instance is invisible.
- remote_addr:
- type: string
- description: Remote IP address of the user's connection to BOS or TOC
- remote_port:
- type: integer
- description: Remote port number of the user's connection to BOS or TOC
- client_id:
- type: string
- description: Client name and version reported by the client at sign-on. Empty if not reported.
- '404':
- description: User not found.
- delete:
- summary: Delete active sessions for a given screen name or UIN.
- description: Disconnect any active sessions of a specific logged in user.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- responses:
- '204':
- description: Session deleted successfully
- '404':
- description: Session not found
- /user/password:
- put:
- summary: Set a user's password
- description: Update the password for a user specified by their screen name or ICQ UIN.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - screen_name
- - password
- properties:
- screen_name:
- type: string
- description: The AIM screen name or ICQ UIN of the user whose password is to be updated.
- password:
- type: string
- description: The new password for the user.
- responses:
- '204':
- description: Password updated successfully.
- '400':
- description: Bad request. Invalid input data.
- '404':
- description: User not found.
- /chat/room/public:
- get:
- summary: List all public AIM chat rooms
- description: Retrieve a list of all public AIM chat rooms in exchange 5.
- responses:
- '200':
- description: Successful response containing a list of chat rooms.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- name:
- type: string
- description: Name of the chat room.
- create_time:
- type: string
- format: date-time
- description: The timestamp when the chat room was created.
- participants:
- type: array
- description: List of participants in the chat room.
- items:
- type: object
- properties:
- id:
- type: string
- description: User's unique identifier.
- screen_name:
- type: string
- description: User's AIM screen name.
- post:
- summary: Create a new public chat room
- description: Create a new public chat room in exchange 5.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- name:
- type: string
- description: Name of the chat room.
- responses:
- '201':
- description: Chat room created successfully.
- '400':
- description: Bad request. Invalid input data.
- '409':
- description: Chat room already exists.
- delete:
- summary: Delete public chat rooms
- description: Delete one or more public chat rooms in exchange 5.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - names
- properties:
- names:
- type: array
- description: List of chat room names to delete.
- items:
- type: string
- responses:
- '204':
- description: Chat rooms deleted successfully.
- '400':
- description: Bad request. Invalid input data.
- '500':
- description: Internal server error.
- /chat/room/private:
- get:
- summary: List all private AIM chat rooms
- description: Retrieve a list of all private AIM chat rooms in exchange 4.
- responses:
- '200':
- description: Successful response containing a list of chat rooms.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- name:
- type: string
- description: Name of the chat room.
- create_time:
- type: string
- format: date-time
- description: The timestamp when the chat room was created.
- creator_id:
- type: string
- description: The chat room creator user ID.
- participants:
- type: array
- description: List of participants in the chat room.
- items:
- type: object
- properties:
- id:
- type: string
- description: User's unique identifier.
- screen_name:
- type: string
- description: User's AIM screen name.
- /instant-message:
- post:
- summary: Send an instant message
- description: |
- Send an instant message from one user to another. Both the sender and the
- recipient must be valid accounts. When sending from a system account, make
- sure that account exists.
- If the recipient is offline, the message is stored for delivery at their next
- login when storeOffline is true; otherwise a 404 is returned.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- properties:
- from:
- type: string
- description: The AIM screen name or ICQ UIN of the sender.
- to:
- type: string
- description: The AIM screen name or ICQ UIN of the recipient.
- text:
- type: string
- description: The text content of the message.
- storeOffline:
- type: boolean
- default: false
- description: If true, store the message for an offline recipient instead of returning 404.
- responses:
- '200':
- description: Message sent or stored for offline delivery.
- '400':
- description: Bad request. Invalid input data, or the sender does not exist.
- '403':
- description: Message blocked by the recipient.
- '404':
- description: Recipient is offline and the message was not stored, either because storeOffline is false or because the recipient does not exist, does not accept offline messages, or has a full offline inbox.
- /version:
- get:
- summary: Get build information of RAS.
- description: Retrieve the build version, git commit, and build date of the running RAS binary.
- responses:
- '200':
- description: Successful response containing the build information.
- content:
- application/json:
- schema:
- type: object
- properties:
- version:
- type: string
- description: The release version number.
- commit:
- type: string
- description: The latest git commit hash in this build.
- date:
- type: string
- description: The build date and timestamp in RFC3339 format.
- /directory/category:
- get:
- summary: Get all keyword categories
- description: Retrieve a list of all keyword categories.
- responses:
- '200':
- description: Successful response containing a list of keyword categories.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- id:
- type: integer
- description: The unique identifier of the keyword category.
- name:
- type: string
- description: The name of the keyword category.
- post:
- summary: Create a new keyword category
- description: Create a new keyword category.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - name
- properties:
- name:
- type: string
- description: The name of the keyword category.
- responses:
- '201':
- description: Keyword category created successfully.
- content:
- application/json:
- schema:
- type: object
- properties:
- id:
- type: integer
- description: The keyword category ID.
- name:
- type: string
- description: The name of the keyword category.
- '400':
- description: Malformed input body.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '409':
- description: A category with the specified name already exists.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- /directory/category/{id}:
- delete:
- summary: Delete a keyword category
- description: Delete a keyword category specified by its ID.
- parameters:
- - name: id
- in: path
- description: The ID of the keyword category.
- required: true
- schema:
- type: integer
- responses:
- '204':
- description: Keyword category deleted successfully.
- '400':
- description: Invalid category ID.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '404':
- description: Keyword category not found.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '409':
- description: The keyword category is currently in use and cannot be deleted.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- /directory/category/{id}/keyword:
- get:
- summary: Get all keywords in a category
- description: Retrieve a list of all keywords in the specified category.
- parameters:
- - name: id
- in: path
- description: The ID of the keyword category.
- required: true
- schema:
- type: integer
- responses:
- '200':
- description: Successful response containing a list of keywords.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- id:
- type: integer
- description: The unique identifier of the keyword.
- name:
- type: string
- description: The name of the keyword.
- '400':
- description: Invalid category ID.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '404':
- description: Keyword category not found.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- /directory/keyword:
- post:
- summary: Create a new keyword.
- description: Create a new keyword in a category.
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - category_id
- - name
- properties:
- category_id:
- type: integer
- description: The ID of the parent keyword category.
- name:
- type: string
- description: The name of the keyword.
- responses:
- '201':
- description: Keyword created successfully.
- content:
- application/json:
- schema:
- type: object
- properties:
- id:
- type: integer
- description: The keyword ID.
- name:
- type: string
- description: The name of the keyword.
- '400':
- description: Malformed input body.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '404':
- description: Parent keyword category not found.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '409':
- description: A keyword with the specified name already exists.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- /directory/keyword/{id}:
- delete:
- summary: Delete a keyword
- description: Delete a keyword specified by its ID.
- parameters:
- - name: id
- in: path
- description: The ID of the keyword.
- required: true
- schema:
- type: integer
- responses:
- '204':
- description: Keyword deleted successfully.
- '404':
- description: Keyword not found.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- '409':
- description: Conflict. The keyword is currently in use and cannot be deleted.
- content:
- application/json:
- schema:
- type: object
- properties:
- message:
- type: string
- /directory/aim:
- get:
- summary: Get all AIM user directory entries
- description: Retrieve the AIM user directory entries of all users who have directory info or keywords set.
- responses:
- '200':
- description: Successful response containing a list of directory entries.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- screen_name:
- type: string
- description: The user's display screen name.
- first_name:
- type: string
- description: The user's first name.
- middle_name:
- type: string
- description: The user's middle name.
- last_name:
- type: string
- description: The user's last name.
- maiden_name:
- type: string
- description: The user's maiden name.
- nickname:
- type: string
- description: The user's nickname.
- city:
- type: string
- description: The user's city.
- state:
- type: string
- description: The user's state or region.
- country:
- type: string
- description: The user's country.
- address:
- type: string
- description: The user's street address.
- zip:
- type: string
- description: The user's ZIP or postal code.
- keywords:
- type: array
- description: The user's directory keywords.
- items:
- type: string
- /bart:
- get:
- summary: Get BART entries by type
- description: Retrieve a list of BART (Buddy ART) entries for a specific type.
- parameters:
- - name: type
- in: query
- description: The BART type ID (integer).
- required: true
- schema:
- $ref: '#/components/schemas/BARTType'
- responses:
- '200':
- description: Successful response containing BART entries for the specified type.
- content:
- application/json:
- schema:
- type: array
- items:
- type: object
- properties:
- hash:
- type: string
- description: A hex value representing the BART asset hash.
- type:
- $ref: '#/components/schemas/BARTType'
- description: The BART type ID.
- required:
- - hash
- - type
- '400':
- description: Bad request. Missing or invalid type parameter.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- /bart/{hash}:
- get:
- summary: Get BART asset data
- description: Retrieve the raw binary data for a specific BART asset.
- parameters:
- - name: hash
- in: path
- description: The hex hash value for the BART asset.
- required: true
- schema:
- type: string
- pattern: '^[0-9a-fA-F]+$'
- responses:
- '200':
- description: Successful response containing the raw BART asset data.
- content:
- application/octet-stream:
- schema:
- type: string
- format: binary
- '400':
- description: Bad request. Missing or invalid hash parameter.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '404':
- description: BART asset not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- post:
- summary: Upload a BART asset
- description: Upload a Buddy ART asset with the specified hash and type.
- parameters:
- - name: hash
- in: path
- description: The hex hash value for the BART asset.
- required: true
- schema:
- type: string
- pattern: '^[0-9a-fA-F]+$'
- - name: type
- in: query
- description: The BART type ID (integer).
- required: true
- schema:
- $ref: '#/components/schemas/BARTType'
- requestBody:
- required: true
- content:
- application/octet-stream:
- schema:
- type: string
- format: binary
- description: Raw bytes of the BART asset
- responses:
- '201':
- description: BART asset uploaded successfully.
- content:
- application/json:
- schema:
- type: object
- properties:
- hash:
- type: string
- description: A hex value representing the BART asset hash.
- type:
- $ref: '#/components/schemas/BARTType'
- description: The BART type ID.
- required:
- - hash
- - type
- '400':
- description: Bad request. Invalid type format, hash format, or failed to read request body.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '409':
- description: Conflict. BART asset already exists.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '413':
- description: Payload too large. Asset exceeds size limits for the specified type.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- delete:
- summary: Delete a BART asset
- description: Delete a BART asset with the specified hash.
- parameters:
- - name: hash
- in: path
- description: The hex hash value for the BART asset.
- required: true
- schema:
- type: string
- pattern: '^[0-9a-fA-F]+$'
- responses:
- '200':
- description: BART asset deleted successfully.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '400':
- description: Bad request. Missing or invalid hash parameter.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '404':
- description: BART asset not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- /feedbag/{screen_name}/group:
- get:
- summary: Get buddy list for a user
- description: Retrieve all buddies for a user, grouped by group ID.
- parameters:
- - name: screen_name
- in: path
- description: User's AIM screen name or ICQ UIN.
- required: true
- schema:
- type: string
- responses:
- '200':
- description: Successful response containing buddy list grouped by group ID.
- content:
- application/json:
- schema:
- type: array
- description: List of buddy groups.
- items:
- type: object
- properties:
- group_id:
- type: integer
- description: The group ID.
- group_name:
- type: string
- description: The name of the group.
- buddies:
- type: array
- description: List of buddies in this group.
- items:
- type: object
- properties:
- name:
- type: string
- description: The buddy's screen name.
- item_id:
- type: integer
- description: The feedbag item ID for this buddy.
- required:
- - group_id
- - group_name
- - buddies
- '404':
- description: User or feedbag not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- /feedbag/{screen_name}/group/{group_name}:
- put:
- summary: Add a group to a user's feedbag
- description: |
- Create a new buddy list group in the user's feedbag. If the feedbag is empty,
- the root group is created automatically. This operation is idempotent — if a
- group with the same name already exists, the request succeeds and returns the
- existing group.
- parameters:
- - name: screen_name
- in: path
- description: User's AIM screen name or ICQ UIN.
- required: true
- schema:
- type: string
- - name: group_name
- in: path
- description: The name of the group to add.
- required: true
- schema:
- type: string
- example: "Friends"
- responses:
- '200':
- description: Group already exists. Operation is idempotent.
- content:
- application/json:
- schema:
- type: object
- properties:
- group_id:
- type: integer
- description: The group ID.
- group_name:
- type: string
- description: The name of the group.
- required:
- - group_id
- - group_name
- '201':
- description: Group created successfully.
- content:
- application/json:
- schema:
- type: object
- properties:
- group_id:
- type: integer
- description: The group ID.
- group_name:
- type: string
- description: The name of the group.
- required:
- - group_id
- - group_name
- '400':
- description: Bad request. Invalid input data.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '404':
- description: User not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- /feedbag/{screen_name}/group/{group_id}/buddy/{buddy_screen_name}:
- put:
- summary: Add a buddy to a group
- description: Add a buddy to a specific group in the user's feedbag. This operation is idempotent - if the buddy already exists in the group, the request will succeed without error.
- parameters:
- - name: screen_name
- in: path
- description: User's AIM screen name or ICQ UIN.
- required: true
- schema:
- type: string
- - name: group_id
- in: path
- description: The group ID to add the buddy to.
- required: true
- schema:
- type: integer
- - name: buddy_screen_name
- in: path
- description: The screen name of the buddy to add.
- required: true
- schema:
- type: string
- example: "buddy123"
- responses:
- '200':
- description: Buddy added or already exists in the group. Operation is idempotent.
- content:
- application/json:
- schema:
- type: object
- properties:
- name:
- type: string
- description: The buddy's screen name.
- group_id:
- type: integer
- description: The group ID the buddy was added to.
- item_id:
- type: integer
- description: The feedbag item ID for this buddy.
- required:
- - name
- - group_id
- - item_id
- '400':
- description: Bad request. Invalid input data.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '404':
- description: User or group not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- delete:
- summary: Delete a buddy from a group
- description: Remove a buddy from a specific group in the user's feedbag.
- parameters:
- - name: screen_name
- in: path
- description: User's AIM screen name or ICQ UIN.
- required: true
- schema:
- type: string
- - name: group_id
- in: path
- description: The group ID to remove the buddy from.
- required: true
- schema:
- type: integer
- - name: buddy_screen_name
- in: path
- description: The screen name of the buddy to remove.
- required: true
- schema:
- type: string
- example: "buddy123"
- responses:
- '204':
- description: Buddy deleted successfully.
- '400':
- description: Bad request. Invalid input data.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '404':
- description: User, group, or buddy not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- /user/{screenname}/linked-account:
- get:
- summary: List linked accounts for a screen name
- description: Retrieve all linked accounts associated with a user.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- responses:
- '200':
- description: Successful response containing linked accounts.
- content:
- application/json:
- schema:
- type: object
- properties:
- linked_accounts:
- type: array
- items:
- type: string
- description: List of linked screen names.
- '404':
- description: User not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- post:
- summary: Add a linked account
- description: Link a screen name to the specified primary user account.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- requestBody:
- required: true
- content:
- application/json:
- schema:
- type: object
- required:
- - linked_screen_name
- properties:
- linked_screen_name:
- type: string
- description: The screen name to link to the primary account.
- example: "secondaryuser"
- responses:
- '201':
- description: Linked account created successfully.
- '400':
- description: Invalid request body, or screen name cannot be linked to itself.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '404':
- description: Primary user or linked user not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '409':
- description: Linked account relationship already exists, or the user already has the maximum of 4 linked accounts.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- /user/{screenname}/linked-account/{linked_screenname}:
- delete:
- summary: Remove a linked account
- description: Remove the linked account relationship between a primary screen name and a linked screen name.
- parameters:
- - in: path
- name: screenname
- schema:
- type: string
- description: User's AIM screen name or ICQ UIN.
- required: true
- - in: path
- name: linked_screenname
- schema:
- type: string
- description: The linked screen name to remove.
- required: true
- responses:
- '204':
- description: Linked account removed successfully.
- '404':
- description: User or linked account not found.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- '500':
- description: Internal server error.
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/MessageResponse'
- components:
- schemas:
- MessageResponse:
- type: object
- properties:
- message:
- type: string
- description: Response message describing the result or error.
- required:
- - message
- BARTType:
- type: integer
- enum: [ 0, 1, 2, 3, 4, 5, 6, 12, 13, 15, 96, 129, 131, 136, 137, 1024, 1026, 1027, 1028 ]
- description: |
- BART (Buddy ART) type identifier. Valid type IDs and their corresponding names:
- - 0: buddy_icon_small (GIF/JPG/BMP, <= 32 pixels and 2k)
- - 1: buddy_icon (GIF/JPG/BMP, <= 64 pixels and 7k)
- - 2: status_str (StringTLV format; DATA flag is always set)
- - 3: arrive_sound (WAV/MP3/MID, <= 10K)
- - 4: rich_text (byte array of rich text codes; DATA flag is always set)
- - 5: superbuddy_icon (XML)
- - 6: radio_station (Opaque struct; DATA flag is always set)
- - 12: buddy_icon_big (SWF)
- - 13: status_str_tod (Time when the status string is set)
- - 15: current_av_track (XML file; Data flag should not be set)
- - 96: depart_sound (WAV/MP3/MID, <= 10K)
- - 129: im_chrome (GIF/JPG/BMP wallpaper)
- - 131: im_sound (WAV/MP3, <= 10K)
- - 136: im_chrome_xml (XML)
- - 137: im_chrome_immers (Immersive Expressions)
- - 1024: emoticon_set (Set of default Emoticons)
- - 1026: encr_cert_chain (Cert chain for encryption certs)
- - 1027: sign_cert_chain (Cert chain for signing certs)
- - 1028: gateway_cert (Cert for enterprise gateway)
|