diff --git a/core/README.md b/core/README.md
index 73e2e4a0..41234353 100644
--- a/core/README.md
+++ b/core/README.md
@@ -10,14 +10,14 @@ Core
To get started, add a dependency on cactacea depending.
```
-"io.github.cactacea" %% "core" % "18.12.7"
+"io.github.cactacea" %% "core" % "18.12.8"
```
Or similarily with Maven:
```
io.github.cactacea
core_2.12
- 18.12.7
+ 18.12.8
```
diff --git a/docs/swagger.json b/docs/swagger.json
index bd7d104d..dd1c26db 100644
--- a/docs/swagger.json
+++ b/docs/swagger.json
@@ -1 +1 @@
-{"swagger":"2.0","info":{"description":"Cactacea / Cactacea backend API for web and mobile applications","version":"18.12.8-SNAPSHOT","title":"Cactacea backend API"},"tags":[{"name":"Accounts","description":"Manage accounts"},{"name":"Blocks","description":"Manage blocks"},{"name":"Comments","description":"Manage comments"},{"name":"Feeds","description":"Manage feeds"},{"name":"Friends","description":"Manage friends"},{"name":"Follows","description":"Manage follows"},{"name":"Groups","description":"Manage groups"},{"name":"Invitations","description":"Manage group invitations"},{"name":"Mediums","description":"Manage media"},{"name":"Messages","description":"Manage messages"},{"name":"Mutes","description":"Manage mutes"},{"name":"Friend Requests","description":"Manage friend requests"},{"name":"Session","description":"Manage session"},{"name":"Sessions","description":"Manage sessions"},{"name":"Settings","description":"Manage session settings"},{"name":"System","description":"Health checking and etc"}],"paths":{"/accounts/{id}":{"get":{"tags":["Accounts"],"summary":"Get information about a account","operationId":"find","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/status":{"get":{"tags":["Accounts"],"summary":"Get account on","operationId":"findStatus","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/AccountStatus"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/display_name":{"put":{"tags":["Accounts"],"summary":"Change display name to session account","operationId":"updateDisplayName","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutAccountDisplayNameBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/accounts/{id}/feeds":{"get":{"tags":["Accounts"],"summary":"Get feeds list a account posted","operationId":"findFeeds","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/likes":{"get":{"tags":["Accounts"],"summary":"Get account's liked feeds","operationId":"findLikes","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of entries returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/followers":{"get":{"tags":["Accounts"],"summary":"Get accounts list a account is followed by","operationId":"findFollowers","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters followers which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of followers. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of followers returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/accounts/{id}/friends":{"get":{"tags":["Accounts"],"summary":"Get a account's friends list","operationId":"findFriends","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters friends which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of friends. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of friends returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Remove friendship to a account","operationId":"unfriend","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/accounts/{accountId}/groups/{groupId}/join":{"post":{"tags":["Accounts"],"summary":"Join a account in a group","operationId":"join","parameters":[{"name":"accountId","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"groupId","in":"path","description":"Group Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"No Content"},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/accounts/{accountId}/groups/{groupId}/leave":{"post":{"tags":["Accounts"],"summary":"Leave a account from a group","operationId":"leave","parameters":[{"name":"accountId","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"groupId","in":"path","description":"Group Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/accounts/{id}/group":{"get":{"tags":["Accounts"],"summary":"Get a direct message group to a account","operationId":"findGroup","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Group"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/groups":{"get":{"tags":["Accounts"],"summary":"Get groups list a account joined","operationId":"findGroups","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of groups. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 groups. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/reports":{"post":{"tags":["Accounts"],"summary":"Report a account","operationId":"report","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostAccountReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/accounts/{id}/blocks":{"post":{"tags":["Accounts"],"summary":"Block a account","operationId":"block","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Unblock a account","operationId":"unblock","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/comments":{"get":{"tags":["Comments"],"summary":"Search comments","operationId":"findComments","parameters":[{"name":"id","in":"query","description":"Feed identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters comments which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of comments. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of comments returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Comment"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Comments"],"summary":"Create a comment on a feed","operationId":"post","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostCommentBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/CommentCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comments"]},{"api_key":[]}]}},"/comments/{id}":{"get":{"tags":["Comments"],"summary":"Get basic information about a comment","operationId":"findComment","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Comment"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"delete":{"tags":["Comments"],"summary":"Remove a comment","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comments"]},{"api_key":[]}]}},"/comments/{id}/reports":{"post":{"tags":["Comments"],"summary":"Report a comment","operationId":"report","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostCommentReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/comments/{id}/likes":{"get":{"tags":["CommentLikes"],"summary":"Get accounts list who liked on a comment","operationId":"findLikes","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["CommentLikes"],"summary":"Set a like on a comment","operationId":"like","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comment_likes"]},{"api_key":[]}]},"delete":{"tags":["CommentLikes"],"summary":"Remove a like on a comment","operationId":"unlike","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comments"]},{"api_key":[]}]}},"/feeds":{"get":{"tags":["Feeds"],"summary":"Search feeds","operationId":"findFeeds","parameters":[{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"feedPrivacyType","in":"query","description":"Feed privacy type. By default the value is everyone.","required":false,"type":"string","enum":["everyone","followers","friends","self"]},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Feeds"],"summary":"Post a feed","operationId":"post","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostFeedBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/FeedCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]}},"/feeds/{id}":{"get":{"tags":["Feeds"],"summary":"Get basic information about a feed","operationId":"findFeed","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Feed"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"put":{"tags":["Feeds"],"summary":"Update a feed","operationId":"update","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutFeedBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]},"delete":{"tags":["Feeds"],"summary":"Delete a feed","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]}},"/feeds/{id}/reports":{"post":{"tags":["Feeds"],"summary":"Report a feed","operationId":"report","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostFeedReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/feeds/{id}/likes":{"get":{"tags":["FeedLikes"],"summary":"Get accounts list who set a like to a feed","operationId":"findLikes","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["FeedLikes"],"summary":"Set a like on a feed","operationId":"like","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feed_likes"]},{"api_key":[]}]},"delete":{"tags":["FeedLikes"],"summary":"Remove a like on a feed","operationId":"unlike","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]}},"/accounts/{id}/following":{"get":{"tags":["Accounts"],"summary":"Get accounts list a account following","operationId":"findFollowing","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters follower which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of follower. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of follower returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/accounts/{id}/follow":{"post":{"tags":["Accounts"],"summary":"Follow a account","operationId":"follow","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"UnFollow a account","operationId":"unfollow","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/groups":{"get":{"tags":["Groups"],"summary":"Search groups","operationId":"findGroups","parameters":[{"name":"groupName","in":"query","description":"Filters groups which group name start of.","required":false,"type":"string"},{"name":"invitationOnly","in":"query","description":"Filters groups that invited accounts can join in.","required":false,"type":"number"},{"name":"groupPrivacyType","in":"query","description":"Filters groups which can join in.","required":false,"type":"string","enum":["everyone","follows","followers","friends"]},{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of messages. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Groups"],"summary":"Create a group","operationId":"create","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostGroupBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/GroupCreated"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}":{"get":{"tags":["Groups"],"summary":"Get basic information about a group","operationId":"findGroup","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Group"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"put":{"tags":["Groups"],"summary":"Update a group","operationId":"update","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutGroupBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]},"delete":{"tags":["Groups"],"summary":"Hide a group and delete all messages","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/join":{"post":{"tags":["Groups"],"summary":"Join to a group,","operationId":"join","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/leave":{"post":{"tags":["Groups"],"summary":"Leave from a group","operationId":"leave","parameters":[{"name":"id","in":"path","description":"Group invitation identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/accounts":{"get":{"tags":["Groups"],"summary":"Get accounts list of a group","operationId":"findAccounts","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/groups/{id}/hides":{"post":{"tags":["Groups"],"summary":"Hide a group","operationId":"hide","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]},"delete":{"tags":["Groups"],"summary":"Show a group","operationId":"show","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/reports":{"post":{"tags":["Groups"],"summary":"Report a group","operationId":"report","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostGroupReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/groups/{id}/invitations":{"post":{"tags":["Invitations"],"summary":"Post a invitation to some accounts","operationId":"create","parameters":[{"name":"id","in":"path","description":"Group Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostInvitationAccountsBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/InvitationCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/accounts/{accountId}/groups/{groupId}/invitations":{"post":{"tags":["Accounts"],"summary":"Create a invitation to a account","operationId":"invite","parameters":[{"name":"accountId","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"groupId","in":"path","description":"Group Identifier.","required":true,"type":"number"}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/InvitationCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/invitations/{id}/accept":{"post":{"tags":["Invitations"],"summary":"Accept a invitation","operationId":"accept","parameters":[{"name":"id","in":"path","description":"Group invitation identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/invitations/{id}/reject":{"post":{"tags":["Invitations"],"summary":"Reject a invitation","operationId":"reject","parameters":[{"name":"id","in":"path","description":"Group invitation identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/mediums/:*":{"get":{"tags":["Mediums"],"summary":"Get a medium","operationId":"findMedium","parameters":[],"security":[{"cactacea_auth":["media"]},{"api_key":[]}]}},"/mediums":{"post":{"tags":["Mediums"],"summary":"Upload a medium","operationId":"uploadMedium","consumes":["multipart/form-data"],"parameters":[{"name":"file","in":"formData","description":"Upload a medium file","required":true,"type":"file"}],"responses":{"201":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/MediumCreated"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["media"]},{"api_key":[]}]}},"/mediums/{id}":{"delete":{"tags":["Mediums"],"summary":"Delete a medium","operationId":"deleteMedium","parameters":[{"name":"id","in":"path","description":"Medium identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Medium not found."}},"security":[{"cactacea_auth":["media"]},{"api_key":[]}]}},"/messages":{"get":{"tags":["Messages"],"summary":"Search messages","operationId":"find","parameters":[{"name":"id","in":"query","description":"Group identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters messages which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of messages. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of entries returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"},{"name":"ascending","in":"query","description":"Order by posted time.","required":true,"type":"boolean"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Message"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Messages"],"summary":"Post a message to a group","operationId":"post","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostMessageBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/MessageCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["messages"]},{"api_key":[]}]},"delete":{"tags":["Messages"],"summary":"Delete messages form a group","operationId":"delete","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeleteMessagesBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["messages"]},{"api_key":[]}]}},"/accounts/{id}/mutes":{"post":{"tags":["Accounts"],"summary":"Mute a account","operationId":"mute","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Unmute a account","operationId":"unmute","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/accounts/{id}/requests":{"post":{"tags":["Accounts"],"summary":"Create a friend request to a account","operationId":"request","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/FriendRequestCreated"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Remove a friend request to a account","operationId":"unrequest","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]}},"/requests/{id}/accept":{"post":{"tags":["FriendRequests"],"summary":"Accept a friend request","operationId":"accept","parameters":[{"name":"id","in":"path","description":"Friend request Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]}},"/requests/{id}/reject":{"post":{"tags":["FriendRequests"],"summary":"Reject a friend request","operationId":"reject","parameters":[{"name":"id","in":"path","description":"Friend request Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]}},"/session":{"get":{"tags":["Session"],"summary":"Get basic information about session account","operationId":"find","parameters":[],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"delete":{"tags":["Session"],"summary":"Sign out","operationId":"signOut","parameters":[],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/account_name/{accountName}":{"get":{"tags":["Session"],"summary":"Confirm account name exist","operationId":"existAccountName","parameters":[{"name":"accountName","in":"path","description":"Account name.","required":true,"type":"string"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/AccountNameNotExists"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/account_name":{"put":{"tags":["Session"],"summary":"Update the account name","operationId":"updateAccountName","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionAccountNameBody"}}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/password":{"put":{"tags":["Session"],"summary":"Update the password","operationId":"updatePassword","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionPasswordBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/profile":{"put":{"tags":["Session"],"summary":"Update the profile","operationId":"updateProfile","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionProfileBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/profile_image":{"put":{"tags":["Session"],"summary":"Update the profile image","operationId":"updateProfileImage","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionProfileImageBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"delete":{"tags":["Session"],"summary":"Remove the profile image","operationId":"deleteProfileImage","parameters":[],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/accounts":{"get":{"tags":["Session"],"summary":"Search accounts","operationId":"findAccounts","parameters":[{"name":"accountName","in":"query","description":"Filters accounts whose account name start of.","required":false,"type":"string"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 accounts. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/blocks":{"get":{"tags":["Blocks"],"summary":"Get blocking accounts list","operationId":"findBlockingAccounts","parameters":[{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/feeds":{"get":{"tags":["Session"],"summary":"Get feeds list session account posted","operationId":"findFeeds","parameters":[{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/likes":{"get":{"tags":["Session"],"summary":"Get feeds list session account set a like","operationId":"findLikes","parameters":[{"name":"since","in":"query","description":"Filters entries which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/following":{"get":{"tags":["Session"],"summary":"Get accounts list session account followed","operationId":"findFollowing","parameters":[{"name":"since","in":"query","description":"Filters follower which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of follower. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of follower returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/session/followers":{"get":{"tags":["Session"],"summary":"Get accounts list session account is followed by","operationId":"findFollowers","parameters":[{"name":"since","in":"query","description":"Filters followers which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of followers. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of followers returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/session/friends":{"get":{"tags":["Session"],"summary":"Get friends list","operationId":"findFriends","parameters":[{"name":"since","in":"query","description":"Filters friends which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of friends. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of friends returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"},{"name":"sortType","in":"query","description":"Friends which sorted by accountName or friendsAt. Default is friendsAt.","required":false,"type":"string","enum":["friendsAt","accountName"]}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/session/groups":{"get":{"tags":["Session"],"summary":"Get groups list session account joined","operationId":"findGroups","parameters":[{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of groups. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/hides":{"get":{"tags":["Session"],"summary":"Get hidden groups list session account joined","operationId":"findHiddenGroups","parameters":[{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of groups. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/invitations":{"get":{"tags":["Session"],"summary":"Get invitations list session account received","operationId":"findGroupInvitations","parameters":[{"name":"since","in":"query","description":"Filters invitations which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of group invitations. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of invitations returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/GroupInvitation"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/mutes":{"get":{"tags":["Session"],"summary":"Get accounts list session account muted","operationId":"findMutingAccounts","parameters":[{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/requests":{"get":{"tags":["Session"],"summary":"Get friend requests list session account created or received","operationId":"findFriendRequests","parameters":[{"name":"since","in":"query","description":"Filters friend requests which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of friend request. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of friend request returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"},{"name":"received","in":"query","description":"Filters friend requests which you have received or sent.","required":true,"type":"boolean"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/FriendRequest"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/push_notification":{"get":{"tags":["Settings"],"summary":"Get push notification settings","operationId":"findSessionPushNotificationSettings","parameters":[],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/PushNotificationSetting"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"put":{"tags":["Settings"],"summary":"Update ths push notification settings","operationId":"updateSessionPushNotificationSettings","parameters":[],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/push_token":{"post":{"tags":["Settings"],"summary":"Update device push token","operationId":"updateSessionPushToken","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostDevicePushTokenBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/status":{"post":{"tags":["Settings"],"summary":"Update device status","operationId":"updateSessionDeviceStatus","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostActiveStatusBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/sessions":{"get":{"tags":["Sessions"],"summary":"Sign in","operationId":"signIn","parameters":[{"name":"accountName","in":"query","description":"Account name.","required":true,"type":"string"},{"name":"password","in":"query","description":"Account password.","required":true,"type":"string"},{"name":"udid","in":"query","description":"Unique Device Identifier.","required":true,"type":"string"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Authentication"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"api_key":[]}]},"post":{"tags":["Sessions"],"summary":"Sign up","operationId":"signUp","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostSignUpBody"}}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Authentication"}}}}},"/ping":{"get":{"tags":["System"],"summary":"Health checking","parameters":[],"responses":{"200":{"description":"Service is operating normally"}}}}},"securityDefinitions":{"api_key":{"type":"apiKey","name":"X-API-KEY","in":"header"},"authorization":{"type":"apiKey","name":"X-AUTHORIZATION","in":"header"},"cactacea_auth":{"type":"oauth2","authorizationUrl":"http://localhost:9000/oauth2/authorization","tokenUrl":"http://localhost:9000/oauth2/token","flow":"accessCode","scopes":{"messages":"to post and delete messages on a user's behalf","feed_likes":"to like and unlike feed on a user’s behalf","follower_list":"to read the list of followers and followed-by users","groups":"to create and delete groups on a user's behalf","relationships":"to follows and unfollow accounts on a user’s behalf","reports":"to report account, feed, group and comment on a user’s behalf","group_invitations":"to create, delete, accept and reject invitations on a user's behalf","media":"to create and delete media on a user’s behalf","comment_likes":"to like and unlike comment on a user’s behalf","basic":"to read a user’s profile info and media","friend_requests":"to create and delete friend request on a user’s behalf","feeds":"to post and delete feeds on a user’s behalf","comments":"to post and delete comments on a user’s behalf"}}},"definitions":{"CactaceaError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer","format":"int64","description":"code"},"message":{"type":"string","description":"message"}}},"AccountId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"Account":{"type":"object","required":["accountName","blocking","displayName","following","friendRequestInProgress","id","isFollower","isFriend","muting"],"properties":{"id":{"type":"number"},"accountName":{"type":"string"},"displayName":{"type":"string"},"profileImageUrl":{"type":"string"},"isFriend":{"type":"boolean"},"friendRequestInProgress":{"type":"boolean"},"following":{"type":"boolean"},"isFollower":{"type":"boolean"},"followingCount":{"type":"number"},"followerCount":{"type":"number"},"friendCount":{"type":"number"},"feedsCount":{"type":"number"},"muting":{"type":"boolean"},"blocking":{"type":"boolean"},"web":{"type":"string"},"birthday":{"type":"number"},"location":{"type":"string"},"bio":{"type":"string"},"joinedAt":{"type":"number"},"next":{"type":"number"}}},"CactaceaErrors":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/definitions/CactaceaError"}}},"example":{"errors":[{"code":40012,"message":"Invalid Account name or password."},{"code":40002,"message":"Account terminated."}]}},"AccountStatus":{"type":"object","required":["id","status"],"properties":{"id":{"type":"number"},"status":{"type":"string","enum":["active","inactive"]}}},"PutAccountDisplayNameBody":{"type":"object","properties":{"displayName":{"type":"string","description":"Display name that each account shown."}},"example":"io.github.cactacea.backend.models.requests.account.PutAccountDisplayName"},"Feed":{"type":"object","required":["commentCount","contentDeleted","contentWarning","id","likeCount","message","postedAt"],"properties":{"id":{"type":"number"},"message":{"type":"string"},"mediums":{"type":"array","items":{"$ref":"#/definitions/Medium"}},"tags":{"type":"array","items":{"type":"string"}},"account":{"$ref":"#/definitions/Account"},"likeCount":{"type":"integer","format":"int64"},"commentCount":{"type":"integer","format":"int64"},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"},"postedAt":{"type":"integer","format":"int64"},"likedAt":{"type":"number"},"next":{"type":"number"}}},"Medium":{"type":"object","required":["contentDeleted","contentWarning","height","id","mediumType","size","uri","width"],"properties":{"id":{"type":"number"},"uri":{"type":"string"},"width":{"type":"integer","format":"int64"},"height":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"thumbnailUrl":{"type":"string"},"mediumType":{"type":"string","enum":["image","movie"]},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"}}},"GroupId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"Group":{"type":"object","required":["accountCount","authorityType","groupPrivacyType","id","invitationOnly","organizedAt"],"properties":{"id":{"type":"number"},"name":{"type":"string"},"message":{"$ref":"#/definitions/Message"},"groupPrivacyType":{"type":"string","enum":["everyone","follows","followers","friends"]},"invitationOnly":{"type":"boolean"},"authorityType":{"type":"string","enum":["owner","member"]},"accountCount":{"type":"integer","format":"int64"},"lastPostedAt":{"type":"number"},"organizedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"Message":{"type":"object","required":["accountCount","contentDeleted","contentWarning","id","messageType","postedAt","readAccountCount","unread"],"properties":{"id":{"type":"number"},"messageType":{"type":"string","enum":["text","medium","stamp","invitation","joined","left"]},"message":{"type":"string"},"medium":{"$ref":"#/definitions/Medium"},"account":{"$ref":"#/definitions/Account"},"unread":{"type":"boolean"},"accountCount":{"type":"integer","format":"int64"},"readAccountCount":{"type":"integer","format":"int64"},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"},"postedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"PostAccountReportBody":{"type":"object","required":["reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.account.PostAccountReport"},"FeedId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"Comment":{"type":"object","required":["account","contentDeleted","contentWarning","id","likeCount","message","postedAt"],"properties":{"id":{"type":"number"},"replyId":{"type":"number"},"message":{"type":"string"},"account":{"$ref":"#/definitions/Account"},"likeCount":{"type":"integer","format":"int64"},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"},"postedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"PostCommentBody":{"type":"object","required":["id","message"],"properties":{"id":{"type":"number","description":"Feed Identifier."},"message":{"type":"string","description":"A message will be posted."}},"example":"io.github.cactacea.backend.models.requests.comment.PostComment"},"CommentCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"CommentId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"PostCommentReportBody":{"type":"object","required":["reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.comment.PostCommentReport"},"PostFeedBody":{"type":"object","required":["contentWarning","message","privacyType"],"properties":{"message":{"type":"string","description":"A feed message will be posted."},"mediumIds":{"type":"array","description":"Medium identifiers of attached.","items":{"type":"number"}},"tags":{"type":"array","description":"Tags of feed.","items":{"type":"string"}},"privacyType":{"type":"string","description":"Feed privacy type.","enum":["everyone","followers","friends","self"]},"contentWarning":{"type":"boolean","description":"Content warning."},"expiration":{"type":"number","description":"Expiration of a feed."}},"example":"io.github.cactacea.backend.models.requests.feed.PostFeed"},"FeedCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"PutFeedBody":{"type":"object","required":["contentWarning","message","privacyType"],"properties":{"message":{"type":"string","description":"A feed message will be posted."},"mediumIds":{"type":"array","description":"Medium identifiers of attached.","items":{"type":"number"}},"tags":{"type":"array","description":"Tags of feed.","items":{"type":"string"}},"privacyType":{"type":"string","description":"Group privacy type.","enum":["everyone","followers","friends","self"]},"contentWarning":{"type":"boolean","description":"Content warning."},"expiration":{"type":"number","description":"Expiration of a feed."}},"example":"io.github.cactacea.backend.models.requests.feed.PutFeed"},"PostFeedReportBody":{"type":"object","required":["reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.feed.PostFeedReport"},"PostGroupBody":{"type":"object","required":["authorityType","byInvitationOnly","name","privacyType"],"properties":{"name":{"type":"string","description":"Group name."},"byInvitationOnly":{"type":"boolean","description":"Only invited accounts can join in."},"privacyType":{"type":"string","description":"Which accounts can join in.","enum":["everyone","follows","followers","friends"]},"authorityType":{"type":"string","description":"Which accounts can manage a group.","enum":["owner","member"]}},"example":"io.github.cactacea.backend.models.requests.group.PostGroup"},"GroupCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"PutGroupBody":{"type":"object","required":["authorityType","byInvitationOnly","name","privacyType"],"properties":{"name":{"type":"string","description":"Group name."},"byInvitationOnly":{"type":"boolean","description":"Only invited accounts can join in."},"privacyType":{"type":"string","description":"Which accounts can join in.","enum":["everyone","follows","followers","friends"]},"authorityType":{"type":"string","description":"Which accounts can manage a group.","enum":["owner","member"]}},"example":"io.github.cactacea.backend.models.requests.group.PutGroup"},"PostGroupReportBody":{"type":"object","required":["reportContent","reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.group.PostGroupReport"},"PostInvitationAccountsBody":{"type":"object","properties":{"accountIds":{"type":"array","description":"Account Identifies.","items":{"type":"number"}}},"example":"io.github.cactacea.backend.models.requests.account.PostInvitationAccounts"},"InvitationCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"GroupInvitationId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"MediumCreated":{"type":"object","required":["id","uri"],"properties":{"id":{"type":"number"},"uri":{"type":"string"}}},"MediumId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"PostMessageBody":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Group identifier."},"message":{"type":"string","description":"A message will be posted."},"mediumId":{"type":"number","description":"A medium will be posted."}},"example":"io.github.cactacea.backend.models.requests.message.PostMessage"},"MessageCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"DeleteMessagesBody":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Group identifier."}},"example":"io.github.cactacea.backend.models.requests.message.DeleteMessages"},"FriendRequestCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"FriendRequestId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"AccountNameNotExists":{"type":"object","required":["accountName","exists"],"properties":{"accountName":{"type":"string"},"exists":{"type":"boolean"}}},"PutSessionAccountNameBody":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Account name."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionAccountName"},"PutSessionPasswordBody":{"type":"object","required":["newPassword","oldPassword"],"properties":{"oldPassword":{"type":"string","description":"Account old password."},"newPassword":{"type":"string","description":"Account new password."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionPassword"},"PutSessionProfileBody":{"type":"object","required":["bio","birthday","displayName","location","web"],"properties":{"displayName":{"type":"string","description":"Display name."},"web":{"type":"string","description":"Profile URL."},"birthday":{"type":"number","description":"Account birthday."},"location":{"type":"string","description":"Account address."},"bio":{"type":"string","description":"Account bio."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionProfile"},"PutSessionProfileImageBody":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Medium identifier."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionProfileImage"},"GroupInvitation":{"type":"object","required":["account","group","id","invitationStatus","invitedAt"],"properties":{"id":{"type":"number"},"group":{"$ref":"#/definitions/Group"},"account":{"$ref":"#/definitions/Account"},"invitationStatus":{"type":"string","enum":["noResponded","accepted","rejected"]},"invitedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"FriendRequest":{"type":"object","required":["account","id","requestStatus","requestedAt"],"properties":{"id":{"type":"number"},"account":{"$ref":"#/definitions/Account"},"requestStatus":{"type":"string","enum":["noResponded","accepted","rejected"]},"requestedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"PushNotificationSetting":{"type":"object","required":["directMessage","feedComment","followerFeed","groupInvitation","groupMessage","showMessage"],"properties":{"followerFeed":{"type":"boolean"},"feedComment":{"type":"boolean"},"groupMessage":{"type":"boolean"},"directMessage":{"type":"boolean"},"groupInvitation":{"type":"boolean"},"showMessage":{"type":"boolean"}}},"PostDevicePushTokenBody":{"type":"object","properties":{"pushToken":{"type":"string","description":"Push notification token."}},"example":"io.github.cactacea.backend.models.requests.setting.PostDevicePushToken"},"PostActiveStatusBody":{"type":"object","properties":{"status":{"type":"string","description":"Device status.","enum":["active","inactive"]}},"example":"io.github.cactacea.backend.models.requests.setting.PostActiveStatus"},"PostSignUpBody":{"type":"object","required":["accountName","password","udid"],"properties":{"accountName":{"type":"string","description":"Account name."},"password":{"type":"string","description":"Account password."},"udid":{"type":"string","description":"Unique Device Identifier."}},"example":"io.github.cactacea.backend.models.requests.sessions.PostSignUp"},"Authentication":{"type":"object","required":["accessToken","account"],"properties":{"account":{"$ref":"#/definitions/Account"},"accessToken":{"type":"string"}}}},"swaggerTypeOverrides":[]}
\ No newline at end of file
+{"swagger":"2.0","info":{"description":"Cactacea / Cactacea backend API for web and mobile applications","version":"18.12.8","title":"Cactacea backend API"},"tags":[{"name":"Accounts","description":"Manage accounts"},{"name":"Blocks","description":"Manage blocks"},{"name":"Comments","description":"Manage comments"},{"name":"Feeds","description":"Manage feeds"},{"name":"Friends","description":"Manage friends"},{"name":"Follows","description":"Manage follows"},{"name":"Groups","description":"Manage groups"},{"name":"Invitations","description":"Manage group invitations"},{"name":"Mediums","description":"Manage media"},{"name":"Messages","description":"Manage messages"},{"name":"Mutes","description":"Manage mutes"},{"name":"Friend Requests","description":"Manage friend requests"},{"name":"Session","description":"Manage session"},{"name":"Sessions","description":"Manage sessions"},{"name":"Settings","description":"Manage session settings"},{"name":"System","description":"Health checking and etc"}],"paths":{"/accounts/{id}":{"get":{"tags":["Accounts"],"summary":"Get information about a account","operationId":"find","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/status":{"get":{"tags":["Accounts"],"summary":"Get account on","operationId":"findStatus","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/AccountStatus"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/display_name":{"put":{"tags":["Accounts"],"summary":"Change display name to session account","operationId":"updateDisplayName","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutAccountDisplayNameBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/accounts/{id}/feeds":{"get":{"tags":["Accounts"],"summary":"Get feeds list a account posted","operationId":"findFeeds","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/likes":{"get":{"tags":["Accounts"],"summary":"Get account's liked feeds","operationId":"findLikes","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of entries returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/followers":{"get":{"tags":["Accounts"],"summary":"Get accounts list a account is followed by","operationId":"findFollowers","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters followers which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of followers. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of followers returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/accounts/{id}/friends":{"get":{"tags":["Accounts"],"summary":"Get a account's friends list","operationId":"findFriends","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters friends which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of friends. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of friends returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Remove friendship to a account","operationId":"unfriend","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/accounts/{accountId}/groups/{groupId}/join":{"post":{"tags":["Accounts"],"summary":"Join a account in a group","operationId":"join","parameters":[{"name":"accountId","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"groupId","in":"path","description":"Group Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"No Content"},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/accounts/{accountId}/groups/{groupId}/leave":{"post":{"tags":["Accounts"],"summary":"Leave a account from a group","operationId":"leave","parameters":[{"name":"accountId","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"groupId","in":"path","description":"Group Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/accounts/{id}/group":{"get":{"tags":["Accounts"],"summary":"Get a direct message group to a account","operationId":"findGroup","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Group"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/groups":{"get":{"tags":["Accounts"],"summary":"Get groups list a account joined","operationId":"findGroups","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of groups. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 groups. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/accounts/{id}/reports":{"post":{"tags":["Accounts"],"summary":"Report a account","operationId":"report","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostAccountReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/accounts/{id}/blocks":{"post":{"tags":["Accounts"],"summary":"Block a account","operationId":"block","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Unblock a account","operationId":"unblock","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/comments":{"get":{"tags":["Comments"],"summary":"Search comments","operationId":"findComments","parameters":[{"name":"id","in":"query","description":"Feed identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters comments which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of comments. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of comments returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Comment"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Comments"],"summary":"Create a comment on a feed","operationId":"post","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostCommentBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/CommentCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comments"]},{"api_key":[]}]}},"/comments/{id}":{"get":{"tags":["Comments"],"summary":"Get basic information about a comment","operationId":"findComment","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Comment"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"delete":{"tags":["Comments"],"summary":"Remove a comment","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comments"]},{"api_key":[]}]}},"/comments/{id}/reports":{"post":{"tags":["Comments"],"summary":"Report a comment","operationId":"report","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostCommentReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/comments/{id}/likes":{"get":{"tags":["CommentLikes"],"summary":"Get accounts list who liked on a comment","operationId":"findLikes","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["CommentLikes"],"summary":"Set a like on a comment","operationId":"like","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comment_likes"]},{"api_key":[]}]},"delete":{"tags":["CommentLikes"],"summary":"Remove a like on a comment","operationId":"unlike","parameters":[{"name":"id","in":"path","description":"Comment Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["comments"]},{"api_key":[]}]}},"/feeds":{"get":{"tags":["Feeds"],"summary":"Search feeds","operationId":"findFeeds","parameters":[{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"feedPrivacyType","in":"query","description":"Feed privacy type. By default the value is everyone.","required":false,"type":"string","enum":["everyone","followers","friends","self"]},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Feeds"],"summary":"Post a feed","operationId":"post","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostFeedBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/FeedCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]}},"/feeds/{id}":{"get":{"tags":["Feeds"],"summary":"Get basic information about a feed","operationId":"findFeed","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Feed"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"put":{"tags":["Feeds"],"summary":"Update a feed","operationId":"update","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutFeedBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]},"delete":{"tags":["Feeds"],"summary":"Delete a feed","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]}},"/feeds/{id}/reports":{"post":{"tags":["Feeds"],"summary":"Report a feed","operationId":"report","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostFeedReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/feeds/{id}/likes":{"get":{"tags":["FeedLikes"],"summary":"Get accounts list who set a like to a feed","operationId":"findLikes","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["FeedLikes"],"summary":"Set a like on a feed","operationId":"like","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feed_likes"]},{"api_key":[]}]},"delete":{"tags":["FeedLikes"],"summary":"Remove a like on a feed","operationId":"unlike","parameters":[{"name":"id","in":"path","description":"Feed identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["feeds"]},{"api_key":[]}]}},"/accounts/{id}/following":{"get":{"tags":["Accounts"],"summary":"Get accounts list a account following","operationId":"findFollowing","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters follower which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of follower. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of follower returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/accounts/{id}/follow":{"post":{"tags":["Accounts"],"summary":"Follow a account","operationId":"follow","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"UnFollow a account","operationId":"unfollow","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/groups":{"get":{"tags":["Groups"],"summary":"Search groups","operationId":"findGroups","parameters":[{"name":"groupName","in":"query","description":"Filters groups which group name start of.","required":false,"type":"string"},{"name":"invitationOnly","in":"query","description":"Filters groups that invited accounts can join in.","required":false,"type":"number"},{"name":"groupPrivacyType","in":"query","description":"Filters groups which can join in.","required":false,"type":"string","enum":["everyone","follows","followers","friends"]},{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of messages. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Groups"],"summary":"Create a group","operationId":"create","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostGroupBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/GroupCreated"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}":{"get":{"tags":["Groups"],"summary":"Get basic information about a group","operationId":"findGroup","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Group"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"put":{"tags":["Groups"],"summary":"Update a group","operationId":"update","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutGroupBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]},"delete":{"tags":["Groups"],"summary":"Hide a group and delete all messages","operationId":"delete","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/join":{"post":{"tags":["Groups"],"summary":"Join to a group,","operationId":"join","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/leave":{"post":{"tags":["Groups"],"summary":"Leave from a group","operationId":"leave","parameters":[{"name":"id","in":"path","description":"Group invitation identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/accounts":{"get":{"tags":["Groups"],"summary":"Get accounts list of a group","operationId":"findAccounts","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/groups/{id}/hides":{"post":{"tags":["Groups"],"summary":"Hide a group","operationId":"hide","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]},"delete":{"tags":["Groups"],"summary":"Show a group","operationId":"show","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["groups"]},{"api_key":[]}]}},"/groups/{id}/reports":{"post":{"tags":["Groups"],"summary":"Report a group","operationId":"report","parameters":[{"name":"id","in":"path","description":"Group identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostGroupReportBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["reports"]},{"api_key":[]}]}},"/groups/{id}/invitations":{"post":{"tags":["Invitations"],"summary":"Post a invitation to some accounts","operationId":"create","parameters":[{"name":"id","in":"path","description":"Group Identifier.","required":true,"type":"number"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostInvitationAccountsBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/InvitationCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/accounts/{accountId}/groups/{groupId}/invitations":{"post":{"tags":["Accounts"],"summary":"Create a invitation to a account","operationId":"invite","parameters":[{"name":"accountId","in":"path","description":"Account Identifier.","required":true,"type":"number"},{"name":"groupId","in":"path","description":"Group Identifier.","required":true,"type":"number"}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/InvitationCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/invitations/{id}/accept":{"post":{"tags":["Invitations"],"summary":"Accept a invitation","operationId":"accept","parameters":[{"name":"id","in":"path","description":"Group invitation identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/invitations/{id}/reject":{"post":{"tags":["Invitations"],"summary":"Reject a invitation","operationId":"reject","parameters":[{"name":"id","in":"path","description":"Group invitation identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["group_invitations"]},{"api_key":[]}]}},"/mediums/:*":{"get":{"tags":["Mediums"],"summary":"Get a medium","operationId":"findMedium","parameters":[],"security":[{"cactacea_auth":["media"]},{"api_key":[]}]}},"/mediums":{"post":{"tags":["Mediums"],"summary":"Upload a medium","operationId":"uploadMedium","consumes":["multipart/form-data"],"parameters":[{"name":"file","in":"formData","description":"Upload a medium file","required":true,"type":"file"}],"responses":{"201":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/MediumCreated"}}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["media"]},{"api_key":[]}]}},"/mediums/{id}":{"delete":{"tags":["Mediums"],"summary":"Delete a medium","operationId":"deleteMedium","parameters":[{"name":"id","in":"path","description":"Medium identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Medium not found."}},"security":[{"cactacea_auth":["media"]},{"api_key":[]}]}},"/messages":{"get":{"tags":["Messages"],"summary":"Search messages","operationId":"find","parameters":[{"name":"id","in":"query","description":"Group identifier.","required":true,"type":"number"},{"name":"since","in":"query","description":"Filters messages which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of messages. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of entries returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"},{"name":"ascending","in":"query","description":"Order by posted time.","required":true,"type":"boolean"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Message"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"post":{"tags":["Messages"],"summary":"Post a message to a group","operationId":"post","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostMessageBody"}}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/MessageCreated"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["messages"]},{"api_key":[]}]},"delete":{"tags":["Messages"],"summary":"Delete messages form a group","operationId":"delete","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/DeleteMessagesBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["messages"]},{"api_key":[]}]}},"/accounts/{id}/mutes":{"post":{"tags":["Accounts"],"summary":"Mute a account","operationId":"mute","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Unmute a account","operationId":"unmute","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["relationships"]},{"api_key":[]}]}},"/accounts/{id}/requests":{"post":{"tags":["Accounts"],"summary":"Create a friend request to a account","operationId":"request","parameters":[{"name":"id","in":"path","description":"Account Identifier.","required":true,"type":"number"}],"responses":{"201":{"description":"Successful operation.","schema":{"$ref":"#/definitions/FriendRequestCreated"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]},"delete":{"tags":["Accounts"],"summary":"Remove a friend request to a account","operationId":"unrequest","parameters":[{"name":"id","in":"path","description":"Account identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]}},"/requests/{id}/accept":{"post":{"tags":["FriendRequests"],"summary":"Accept a friend request","operationId":"accept","parameters":[{"name":"id","in":"path","description":"Friend request Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]}},"/requests/{id}/reject":{"post":{"tags":["FriendRequests"],"summary":"Reject a friend request","operationId":"reject","parameters":[{"name":"id","in":"path","description":"Friend request Identifier.","required":true,"type":"number"}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["friend_requests"]},{"api_key":[]}]}},"/session":{"get":{"tags":["Session"],"summary":"Get basic information about session account","operationId":"find","parameters":[],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Account"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"delete":{"tags":["Session"],"summary":"Sign out","operationId":"signOut","parameters":[],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/account_name/{accountName}":{"get":{"tags":["Session"],"summary":"Confirm account name exist","operationId":"existAccountName","parameters":[{"name":"accountName","in":"path","description":"Account name.","required":true,"type":"string"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/AccountNameNotExists"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/account_name":{"put":{"tags":["Session"],"summary":"Update the account name","operationId":"updateAccountName","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionAccountNameBody"}}],"responses":{"200":{"description":"Successful operation."},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/password":{"put":{"tags":["Session"],"summary":"Update the password","operationId":"updatePassword","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionPasswordBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/profile":{"put":{"tags":["Session"],"summary":"Update the profile","operationId":"updateProfile","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionProfileBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/profile_image":{"put":{"tags":["Session"],"summary":"Update the profile image","operationId":"updateProfileImage","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PutSessionProfileImageBody"}}],"responses":{"200":{"description":"Successful operation."},"404":{"description":"Not Found","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"delete":{"tags":["Session"],"summary":"Remove the profile image","operationId":"deleteProfileImage","parameters":[],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/accounts":{"get":{"tags":["Session"],"summary":"Search accounts","operationId":"findAccounts","parameters":[{"name":"accountName","in":"query","description":"Filters accounts whose account name start of.","required":false,"type":"string"},{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 accounts. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/blocks":{"get":{"tags":["Blocks"],"summary":"Get blocking accounts list","operationId":"findBlockingAccounts","parameters":[{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/feeds":{"get":{"tags":["Session"],"summary":"Get feeds list session account posted","operationId":"findFeeds","parameters":[{"name":"since","in":"query","description":"Filters feeds which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/likes":{"get":{"tags":["Session"],"summary":"Get feeds list session account set a like","operationId":"findLikes","parameters":[{"name":"since","in":"query","description":"Filters entries which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of feeds. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of feeds returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Feed"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/following":{"get":{"tags":["Session"],"summary":"Get accounts list session account followed","operationId":"findFollowing","parameters":[{"name":"since","in":"query","description":"Filters follower which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of follower. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of follower returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/session/followers":{"get":{"tags":["Session"],"summary":"Get accounts list session account is followed by","operationId":"findFollowers","parameters":[{"name":"since","in":"query","description":"Filters followers which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of followers. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of followers returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/session/friends":{"get":{"tags":["Session"],"summary":"Get friends list","operationId":"findFriends","parameters":[{"name":"since","in":"query","description":"Filters friends which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of friends. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of friends returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"},{"name":"sortType","in":"query","description":"Friends which sorted by accountName or friendsAt. Default is friendsAt.","required":false,"type":"string","enum":["friendsAt","accountName"]}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["follower_list"]},{"api_key":[]}]}},"/session/groups":{"get":{"tags":["Session"],"summary":"Get groups list session account joined","operationId":"findGroups","parameters":[{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of groups. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/hides":{"get":{"tags":["Session"],"summary":"Get hidden groups list session account joined","operationId":"findHiddenGroups","parameters":[{"name":"since","in":"query","description":"Filters groups which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of groups. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of groups returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Group"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/invitations":{"get":{"tags":["Session"],"summary":"Get invitations list session account received","operationId":"findGroupInvitations","parameters":[{"name":"since","in":"query","description":"Filters invitations which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of group invitations. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of invitations returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/GroupInvitation"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/mutes":{"get":{"tags":["Session"],"summary":"Get accounts list session account muted","operationId":"findMutingAccounts","parameters":[{"name":"since","in":"query","description":"Filters accounts which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of accounts. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of accounts returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/Account"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/requests":{"get":{"tags":["Session"],"summary":"Get friend requests list session account created or received","operationId":"findFriendRequests","parameters":[{"name":"since","in":"query","description":"Filters friend requests which started on since or later.","required":false,"type":"number"},{"name":"offset","in":"query","description":"The offset of friend request. By default the value is 0.","required":false,"type":"number"},{"name":"count","in":"query","description":"Maximum number of friend request returned on one result page. By default the value is 20 entries. The page size can never be larger than 50.","required":false,"type":"number"},{"name":"received","in":"query","description":"Filters friend requests which you have received or sent.","required":true,"type":"boolean"}],"responses":{"200":{"description":"Successful operation.","schema":{"type":"array","items":{"$ref":"#/definitions/FriendRequest"}}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/push_notification":{"get":{"tags":["Settings"],"summary":"Get push notification settings","operationId":"findSessionPushNotificationSettings","parameters":[],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/PushNotificationSetting"}}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]},"put":{"tags":["Settings"],"summary":"Update ths push notification settings","operationId":"updateSessionPushNotificationSettings","parameters":[],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/push_token":{"post":{"tags":["Settings"],"summary":"Update device push token","operationId":"updateSessionPushToken","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostDevicePushTokenBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/session/status":{"post":{"tags":["Settings"],"summary":"Update device status","operationId":"updateSessionDeviceStatus","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostActiveStatusBody"}}],"responses":{"200":{"description":"Successful operation."}},"security":[{"cactacea_auth":["basic"]},{"api_key":[]}]}},"/sessions":{"get":{"tags":["Sessions"],"summary":"Sign in","operationId":"signIn","parameters":[{"name":"accountName","in":"query","description":"Account name.","required":true,"type":"string"},{"name":"password","in":"query","description":"Account password.","required":true,"type":"string"},{"name":"udid","in":"query","description":"Unique Device Identifier.","required":true,"type":"string"}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Authentication"}},"400":{"description":"Bad Request","schema":{"$ref":"#/definitions/CactaceaErrors"}}},"security":[{"api_key":[]}]},"post":{"tags":["Sessions"],"summary":"Sign up","operationId":"signUp","parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/PostSignUpBody"}}],"responses":{"200":{"description":"Successful operation.","schema":{"$ref":"#/definitions/Authentication"}}}}},"/ping":{"get":{"tags":["System"],"summary":"Health checking","parameters":[],"responses":{"200":{"description":"Service is operating normally"}}}}},"securityDefinitions":{"api_key":{"type":"apiKey","name":"X-API-KEY","in":"header"},"authorization":{"type":"apiKey","name":"X-AUTHORIZATION","in":"header"},"cactacea_auth":{"type":"oauth2","authorizationUrl":"http://localhost:9000/oauth2/authorization","tokenUrl":"http://localhost:9000/oauth2/token","flow":"accessCode","scopes":{"messages":"to post and delete messages on a user's behalf","feed_likes":"to like and unlike feed on a user’s behalf","follower_list":"to read the list of followers and followed-by users","groups":"to create and delete groups on a user's behalf","relationships":"to follows and unfollow accounts on a user’s behalf","reports":"to report account, feed, group and comment on a user’s behalf","group_invitations":"to create, delete, accept and reject invitations on a user's behalf","media":"to create and delete media on a user’s behalf","comment_likes":"to like and unlike comment on a user’s behalf","basic":"to read a user’s profile info and media","friend_requests":"to create and delete friend request on a user’s behalf","feeds":"to post and delete feeds on a user’s behalf","comments":"to post and delete comments on a user’s behalf"}}},"definitions":{"CactaceaError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer","format":"int64","description":"code"},"message":{"type":"string","description":"message"}}},"AccountId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"Account":{"type":"object","required":["accountName","blocking","displayName","following","friendRequestInProgress","id","isFollower","isFriend","muting"],"properties":{"id":{"type":"number"},"accountName":{"type":"string"},"displayName":{"type":"string"},"profileImageUrl":{"type":"string"},"isFriend":{"type":"boolean"},"friendRequestInProgress":{"type":"boolean"},"following":{"type":"boolean"},"isFollower":{"type":"boolean"},"followingCount":{"type":"number"},"followerCount":{"type":"number"},"friendCount":{"type":"number"},"feedsCount":{"type":"number"},"muting":{"type":"boolean"},"blocking":{"type":"boolean"},"web":{"type":"string"},"birthday":{"type":"number"},"location":{"type":"string"},"bio":{"type":"string"},"joinedAt":{"type":"number"},"next":{"type":"number"}}},"CactaceaErrors":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"$ref":"#/definitions/CactaceaError"}}},"example":{"errors":[{"code":40012,"message":"Invalid Account name or password."},{"code":40002,"message":"Account terminated."}]}},"AccountStatus":{"type":"object","required":["id","status"],"properties":{"id":{"type":"number"},"status":{"type":"string","enum":["active","inactive"]}}},"PutAccountDisplayNameBody":{"type":"object","properties":{"displayName":{"type":"string","description":"Display name that each account shown."}},"example":"io.github.cactacea.backend.models.requests.account.PutAccountDisplayName"},"Feed":{"type":"object","required":["commentCount","contentDeleted","contentWarning","id","likeCount","message","postedAt"],"properties":{"id":{"type":"number"},"message":{"type":"string"},"mediums":{"type":"array","items":{"$ref":"#/definitions/Medium"}},"tags":{"type":"array","items":{"type":"string"}},"account":{"$ref":"#/definitions/Account"},"likeCount":{"type":"integer","format":"int64"},"commentCount":{"type":"integer","format":"int64"},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"},"postedAt":{"type":"integer","format":"int64"},"likedAt":{"type":"number"},"next":{"type":"number"}}},"Medium":{"type":"object","required":["contentDeleted","contentWarning","height","id","mediumType","size","uri","width"],"properties":{"id":{"type":"number"},"uri":{"type":"string"},"width":{"type":"integer","format":"int64"},"height":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"thumbnailUrl":{"type":"string"},"mediumType":{"type":"string","enum":["image","movie"]},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"}}},"GroupId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"Group":{"type":"object","required":["accountCount","authorityType","groupPrivacyType","id","invitationOnly","organizedAt"],"properties":{"id":{"type":"number"},"name":{"type":"string"},"message":{"$ref":"#/definitions/Message"},"groupPrivacyType":{"type":"string","enum":["everyone","follows","followers","friends"]},"invitationOnly":{"type":"boolean"},"authorityType":{"type":"string","enum":["owner","member"]},"accountCount":{"type":"integer","format":"int64"},"lastPostedAt":{"type":"number"},"organizedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"Message":{"type":"object","required":["accountCount","contentDeleted","contentWarning","id","messageType","postedAt","readAccountCount","unread"],"properties":{"id":{"type":"number"},"messageType":{"type":"string","enum":["text","medium","stamp","invitation","joined","left"]},"message":{"type":"string"},"medium":{"$ref":"#/definitions/Medium"},"account":{"$ref":"#/definitions/Account"},"unread":{"type":"boolean"},"accountCount":{"type":"integer","format":"int64"},"readAccountCount":{"type":"integer","format":"int64"},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"},"postedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"PostAccountReportBody":{"type":"object","required":["reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.account.PostAccountReport"},"FeedId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"Comment":{"type":"object","required":["account","contentDeleted","contentWarning","id","likeCount","message","postedAt"],"properties":{"id":{"type":"number"},"replyId":{"type":"number"},"message":{"type":"string"},"account":{"$ref":"#/definitions/Account"},"likeCount":{"type":"integer","format":"int64"},"contentWarning":{"type":"boolean"},"contentDeleted":{"type":"boolean"},"postedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"PostCommentBody":{"type":"object","required":["id","message"],"properties":{"id":{"type":"number","description":"Feed Identifier."},"message":{"type":"string","description":"A message will be posted."}},"example":"io.github.cactacea.backend.models.requests.comment.PostComment"},"CommentCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"CommentId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"PostCommentReportBody":{"type":"object","required":["reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.comment.PostCommentReport"},"PostFeedBody":{"type":"object","required":["contentWarning","message","privacyType"],"properties":{"message":{"type":"string","description":"A feed message will be posted."},"mediumIds":{"type":"array","description":"Medium identifiers of attached.","items":{"type":"number"}},"tags":{"type":"array","description":"Tags of feed.","items":{"type":"string"}},"privacyType":{"type":"string","description":"Feed privacy type.","enum":["everyone","followers","friends","self"]},"contentWarning":{"type":"boolean","description":"Content warning."},"expiration":{"type":"number","description":"Expiration of a feed."}},"example":"io.github.cactacea.backend.models.requests.feed.PostFeed"},"FeedCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"PutFeedBody":{"type":"object","required":["contentWarning","message","privacyType"],"properties":{"message":{"type":"string","description":"A feed message will be posted."},"mediumIds":{"type":"array","description":"Medium identifiers of attached.","items":{"type":"number"}},"tags":{"type":"array","description":"Tags of feed.","items":{"type":"string"}},"privacyType":{"type":"string","description":"Group privacy type.","enum":["everyone","followers","friends","self"]},"contentWarning":{"type":"boolean","description":"Content warning."},"expiration":{"type":"number","description":"Expiration of a feed."}},"example":"io.github.cactacea.backend.models.requests.feed.PutFeed"},"PostFeedReportBody":{"type":"object","required":["reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.feed.PostFeedReport"},"PostGroupBody":{"type":"object","required":["authorityType","byInvitationOnly","name","privacyType"],"properties":{"name":{"type":"string","description":"Group name."},"byInvitationOnly":{"type":"boolean","description":"Only invited accounts can join in."},"privacyType":{"type":"string","description":"Which accounts can join in.","enum":["everyone","follows","followers","friends"]},"authorityType":{"type":"string","description":"Which accounts can manage a group.","enum":["owner","member"]}},"example":"io.github.cactacea.backend.models.requests.group.PostGroup"},"GroupCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"PutGroupBody":{"type":"object","required":["authorityType","byInvitationOnly","name","privacyType"],"properties":{"name":{"type":"string","description":"Group name."},"byInvitationOnly":{"type":"boolean","description":"Only invited accounts can join in."},"privacyType":{"type":"string","description":"Which accounts can join in.","enum":["everyone","follows","followers","friends"]},"authorityType":{"type":"string","description":"Which accounts can manage a group.","enum":["owner","member"]}},"example":"io.github.cactacea.backend.models.requests.group.PutGroup"},"PostGroupReportBody":{"type":"object","required":["reportContent","reportType"],"properties":{"reportType":{"type":"string","description":"Report type.","enum":["none","spam","inappropriate"]},"reportContent":{"type":"string","description":"Description about this report."}},"example":"io.github.cactacea.backend.models.requests.group.PostGroupReport"},"PostInvitationAccountsBody":{"type":"object","properties":{"accountIds":{"type":"array","description":"Account Identifies.","items":{"type":"number"}}},"example":"io.github.cactacea.backend.models.requests.account.PostInvitationAccounts"},"InvitationCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"GroupInvitationId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"MediumCreated":{"type":"object","required":["id","uri"],"properties":{"id":{"type":"number"},"uri":{"type":"string"}}},"MediumId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"PostMessageBody":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Group identifier."},"message":{"type":"string","description":"A message will be posted."},"mediumId":{"type":"number","description":"A medium will be posted."}},"example":"io.github.cactacea.backend.models.requests.message.PostMessage"},"MessageCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"DeleteMessagesBody":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Group identifier."}},"example":"io.github.cactacea.backend.models.requests.message.DeleteMessages"},"FriendRequestCreated":{"type":"object","required":["id"],"properties":{"id":{"type":"number"}}},"FriendRequestId":{"type":"object","required":["value"],"properties":{"value":{"type":"integer","format":"int64"}}},"AccountNameNotExists":{"type":"object","required":["accountName","exists"],"properties":{"accountName":{"type":"string"},"exists":{"type":"boolean"}}},"PutSessionAccountNameBody":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Account name."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionAccountName"},"PutSessionPasswordBody":{"type":"object","required":["newPassword","oldPassword"],"properties":{"oldPassword":{"type":"string","description":"Account old password."},"newPassword":{"type":"string","description":"Account new password."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionPassword"},"PutSessionProfileBody":{"type":"object","required":["bio","birthday","displayName","location","web"],"properties":{"displayName":{"type":"string","description":"Display name."},"web":{"type":"string","description":"Profile URL."},"birthday":{"type":"number","description":"Account birthday."},"location":{"type":"string","description":"Account address."},"bio":{"type":"string","description":"Account bio."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionProfile"},"PutSessionProfileImageBody":{"type":"object","required":["id"],"properties":{"id":{"type":"number","description":"Medium identifier."}},"example":"io.github.cactacea.backend.models.requests.session.PutSessionProfileImage"},"GroupInvitation":{"type":"object","required":["account","group","id","invitationStatus","invitedAt"],"properties":{"id":{"type":"number"},"group":{"$ref":"#/definitions/Group"},"account":{"$ref":"#/definitions/Account"},"invitationStatus":{"type":"string","enum":["noResponded","accepted","rejected"]},"invitedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"FriendRequest":{"type":"object","required":["account","id","requestStatus","requestedAt"],"properties":{"id":{"type":"number"},"account":{"$ref":"#/definitions/Account"},"requestStatus":{"type":"string","enum":["noResponded","accepted","rejected"]},"requestedAt":{"type":"integer","format":"int64"},"next":{"type":"number"}}},"PushNotificationSetting":{"type":"object","required":["directMessage","feedComment","followerFeed","groupInvitation","groupMessage","showMessage"],"properties":{"followerFeed":{"type":"boolean"},"feedComment":{"type":"boolean"},"groupMessage":{"type":"boolean"},"directMessage":{"type":"boolean"},"groupInvitation":{"type":"boolean"},"showMessage":{"type":"boolean"}}},"PostDevicePushTokenBody":{"type":"object","properties":{"pushToken":{"type":"string","description":"Push notification token."}},"example":"io.github.cactacea.backend.models.requests.setting.PostDevicePushToken"},"PostActiveStatusBody":{"type":"object","properties":{"status":{"type":"string","description":"Device status.","enum":["active","inactive"]}},"example":"io.github.cactacea.backend.models.requests.setting.PostActiveStatus"},"PostSignUpBody":{"type":"object","required":["accountName","password","udid"],"properties":{"accountName":{"type":"string","description":"Account name."},"password":{"type":"string","description":"Account password."},"udid":{"type":"string","description":"Unique Device Identifier."}},"example":"io.github.cactacea.backend.models.requests.sessions.PostSignUp"},"Authentication":{"type":"object","required":["accessToken","account"],"properties":{"account":{"$ref":"#/definitions/Account"},"accessToken":{"type":"string"}}}},"swaggerTypeOverrides":[]}
\ No newline at end of file
diff --git a/generate_sdks.sh b/generate_sdks.sh
index 0cd0a1dc..bfccf8ce 100755
--- a/generate_sdks.sh
+++ b/generate_sdks.sh
@@ -7,7 +7,7 @@ swagger-codegen generate \
--type-mappings number=Int64 \
--language-specific-primitives Int16,Int32,Int64,NSDate \
--additional-properties projectName="Cactacea" \
- --additional-properties podVersion="18.12.7" \
+ --additional-properties podVersion="18.12.8" \
--additional-properties podSummary="Cactacea iOS SDK" \
--additional-properties podDescription="An iOS library to interface with Cactacea backend API" \
--additional-properties podSource="" \
diff --git a/libs/filhouette/README.md b/libs/filhouette/README.md
index 043b94f1..403253a9 100644
--- a/libs/filhouette/README.md
+++ b/libs/filhouette/README.md
@@ -9,14 +9,14 @@ An authentication library for Finatra Framework applications forked from [`Silho
To get started, add a dependency on filhouette depending if you are building a Finatra server.
```
-"io.github.cactacea" %% "filhouette" % "18.12.7"
+"io.github.cactacea" %% "filhouette" % "18.12.8"
```
Or similarily with Maven:
```
io.github.cactacea
filhouette_2.12
- 18.12.7
+ 18.12.8
```
diff --git a/libs/finagger/README.md b/libs/finagger/README.md
index d059313b..375118b8 100644
--- a/libs/finagger/README.md
+++ b/libs/finagger/README.md
@@ -9,14 +9,14 @@ Swagger support for Finatra
To get started, add a dependency on finagger depending if you are using a server based on Finatra and swagger.
```
-"io.github.cactacea" %% "finagger" % "18.12.7"
+"io.github.cactacea" %% "finagger" % "18.12.8"
```
Or similarily with Maven:
```
io.github.cactacea
finagger_2.12
- 18.12.7
+ 18.12.8
```
diff --git a/plugin/README.md b/plugin/README.md
index 457ac0b9..6f576147 100644
--- a/plugin/README.md
+++ b/plugin/README.md
@@ -9,5 +9,5 @@
Update to your project/plugin.sbt file to include:
```
-addSbtPlugin("io.github.cactacea" % "plugin" % "18.12.7")
+addSbtPlugin("io.github.cactacea" % "plugin" % "18.12.8")
```
\ No newline at end of file
diff --git a/server/README.md b/server/README.md
index 33507682..6aa1e378 100644
--- a/server/README.md
+++ b/server/README.md
@@ -10,13 +10,13 @@ Server
To get started, add a dependency on cactacea depending.
```
-"io.github.cactacea" %% "server" % "18.12.7"
+"io.github.cactacea" %% "server" % "18.12.8"
```
Or similarily with Maven:
```
io.github.cactacea
server_2.12
- 18.12.7
+ 18.12.8
```
diff --git a/version.sbt b/version.sbt
index 008c2c06..3d351d62 100644
--- a/version.sbt
+++ b/version.sbt
@@ -1 +1 @@
-version in ThisBuild := "18.12.8-SNAPSHOT"
+version in ThisBuild := "18.12.8"