Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[chore] Use latest containers when building #1554

Merged
merged 1 commit into from Feb 26, 2023

Conversation

daenney
Copy link
Member

@daenney daenney commented Feb 25, 2023

Description

This updates the Dockerfile to use the latest image versions for all the containers that are used when building the final GTS container.

Checklist

Please put an x inside each checkbox to indicate that you've read and followed it: [ ] -> [x]

If this is a documentation change, only the first checkbox must be filled (you can delete the others if you want).

  • I/we have read the GoToSocial contribution guidelines.
  • I/we have discussed the proposed changes already, either in an issue on the repository, or in the Matrix chat.
  • I/we have performed a self-review of added code.
  • I/we have written code that is legible and maintainable by others.
  • I/we have commented the added code, particularly in hard-to-understand areas.
  • I/we have made any necessary changes to documentation.
  • I/we have added tests that cover new code.
  • I/we have run tests and they pass locally with the changes.
  • I/we have run go fmt ./... and golangci-lint run.

This updates the Dockerfile to use the latest image versions for all the
containers that are used when building the final GTS container.
@@ -2,7 +2,7 @@
# Dockerfile reference: https://docs.docker.com/engine/reference/builder/

# stage 1: generate up-to-date swagger.yaml to put in the final container
FROM --platform=${BUILDPLATFORM} quay.io/goswagger/swagger:v0.30.0 AS swagger
FROM --platform=${BUILDPLATFORM} quay.io/goswagger/swagger:v0.30.4 AS swagger
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should test this swagger version locally to make sure it works, I remember there were some issues using versions > 0.30.0 so we might have to tweak our swagger stuff if the issues persist

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, I ran a check, this is what I get:

$ swagger version
version: v0.30.4
commit: df6da9b77aa9751f06bedb17fcf92b1ab67a7a47
$ swagger generate spec -o swagger.yaml --scan-models
$ diff -u diff -u swagger.yaml docs/api/swagger.yaml
--- swagger.yaml	2023-02-25 16:28:00.534521242 +0100
+++ docs/api/swagger.yaml	2023-02-25 15:12:28.128510621 +0100
@@ -1,236 +1,2459 @@
 basePath: /
 definitions:
+    EmojiUpdateType:
+        title: EmojiUpdateType models an admin update action to take on a custom emoji.
+        type: string
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    InstanceConfigurationEmojis:
+        properties:
+            emoji_size_limit:
+                description: Max allowed emoji image size in bytes.
+                example: 51200
+                format: int64
+                type: integer
+                x-go-name: EmojiSizeLimit
+        title: InstanceConfigurationEmojis models instance emoji config parameters.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    Link:
+        description: See https://webfinger.net/
+        properties:
+            href:
+                type: string
+                x-go-name: Href
+            rel:
+                type: string
+                x-go-name: Rel
+            template:
+                type: string
+                x-go-name: Template
+            type:
+                type: string
+                x-go-name: Type
+        title: Link represents one 'link' in a slice of links returned from a lookup request.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    Mention:
+        properties:
+            acct:
+                description: |-
+                    The account URI as discovered via webfinger.
+                    Equal to username for local users, or username@domain for remote users.
+                example: some_user@example.org
+                type: string
+                x-go-name: Acct
+            id:
+                description: The ID of the mentioned account.
+                example: 01FBYJHQWQZAVWFRK9PDYTKGMB
+                type: string
+                x-go-name: ID
+            url:
+                description: The web URL of the mentioned account's profile.
+                example: https://example.org/@some_user
+                type: string
+                x-go-name: URL
+            username:
+                description: The username of the mentioned account.
+                example: some_user
+                type: string
+                x-go-name: Username
+        title: Mention represents a mention of another account.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    NodeInfoServices:
+        properties:
+            inbound:
+                items:
+                    type: string
+                type: array
+                x-go-name: Inbound
+            outbound:
+                items:
+                    type: string
+                type: array
+                x-go-name: Outbound
+        title: NodeInfoServices represents inbound and outbound services that this node offers connections to.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    NodeInfoSoftware:
+        properties:
+            name:
+                example: gotosocial
+                type: string
+                x-go-name: Name
+            version:
+                example: 0.1.2 1234567
+                type: string
+                x-go-name: Version
+        title: NodeInfoSoftware represents the name and version number of the software of this node.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    NodeInfoUsage:
+        properties:
+            localPosts:
+                format: int64
+                type: integer
+                x-go-name: LocalPosts
+            users:
+                $ref: '#/definitions/NodeInfoUsers'
+        title: NodeInfoUsage represents usage information about this server, such as number of users.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    NodeInfoUsers:
+        properties:
+            total:
+                format: int64
+                type: integer
+                x-go-name: Total
+        title: NodeInfoUsers represents aggregate information about the users on the server.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+    Source:
+        description: Returned as an additional entity when verifying and updated credentials, as an attribute of Account.
+        properties:
+            fields:
+                description: Metadata about the account.
+                items:
+                    $ref: '#/definitions/field'
+                type: array
+                x-go-name: Fields
+            follow_requests_count:
+                description: The number of pending follow requests.
+                format: int64
+                type: integer
+                x-go-name: FollowRequestsCount
+            language:
+                description: The default posting language for new statuses.
+                type: string
+                x-go-name: Language
+            note:
+                description: Profile bio.
+                type: string
+                x-go-name: Note
+            privacy:
+                description: |-
+                    The default post privacy to be used for new statuses.
+                    public = Public post
+                    unlisted = Unlisted post
+                    private = Followers-only post
+                    direct = Direct post
+                type: string
+                x-go-name: Privacy
+            sensitive:
+                description: Whether new statuses should be marked sensitive by default.
+                type: boolean
+                x-go-name: Sensitive
+            status_format:
+                description: The default posting format for new statuses.
+                type: string
+                x-go-name: StatusFormat
+        title: Source represents display or publishing preferences of user's own account.
+        type: object
+        x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     account:
         description: The modelled account can be either a remote account, or one on this instance.
+        properties:
+            acct:
+                description: |-
+                    The account URI as discovered via webfinger.
+                    Equal to username for local users, or username@domain for remote users.
+                example: some_user@example.org
+                type: string
+                x-go-name: Acct
+            avatar:
+                description: Web location of the account's avatar.
+                example: https://example.org/media/some_user/avatar/original/avatar.jpeg
+                type: string
+                x-go-name: Avatar
+            avatar_static:
+                description: |-
+                    Web location of a static version of the account's avatar.
+                    Only relevant when the account's main avatar is a video or a gif.
+                example: https://example.org/media/some_user/avatar/static/avatar.png
+                type: string
+                x-go-name: AvatarStatic
+            bot:
+                description: Account identifies as a bot.
+                type: boolean
+                x-go-name: Bot
+            created_at:
+                description: When the account was created (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            custom_css:
+                description: CustomCSS to include when rendering this account's profile or statuses.
+                type: string
+                x-go-name: CustomCSS
+            discoverable:
+                description: Account has opted into discovery features.
+                type: boolean
+                x-go-name: Discoverable
+            display_name:
+                description: The account's display name.
+                example: big jeff (he/him)
+                type: string
+                x-go-name: DisplayName
+            emojis:
+                description: Array of custom emojis used in this account's note or display name.
+                items:
+                    $ref: '#/definitions/emoji'
+                type: array
+                x-go-name: Emojis
+            enable_rss:
+                description: Account has enabled RSS feed.
+                type: boolean
+                x-go-name: EnableRSS
+            fields:
+                description: Additional metadata attached to this account's profile.
+                items:
+                    $ref: '#/definitions/field'
+                type: array
+                x-go-name: Fields
+            followers_count:
+                description: Number of accounts following this account, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: FollowersCount
+            following_count:
+                description: Number of account's followed by this account, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: FollowingCount
+            header:
+                description: Web location of the account's header image.
+                example: https://example.org/media/some_user/header/original/header.jpeg
+                type: string
+                x-go-name: Header
+            header_static:
+                description: |-
+                    Web location of a static version of the account's header.
+                    Only relevant when the account's main header is a video or a gif.
+                example: https://example.org/media/some_user/header/static/header.png
+                type: string
+                x-go-name: HeaderStatic
+            id:
+                description: The account id.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: ID
+            last_status_at:
+                description: When the account's most recent status was posted (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: LastStatusAt
+            locked:
+                description: Account manually approves follow requests.
+                type: boolean
+                x-go-name: Locked
+            mute_expires_at:
+                description: If this account has been muted, when will the mute expire (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: MuteExpiresAt
+            note:
+                description: Bio/description of this account.
+                type: string
+                x-go-name: Note
+            role:
+                $ref: '#/definitions/accountRole'
+            source:
+                $ref: '#/definitions/Source'
+            statuses_count:
+                description: Number of statuses posted by this account, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: StatusesCount
+            suspended:
+                description: Account has been suspended by our instance.
+                type: boolean
+                x-go-name: Suspended
+            url:
+                description: Web location of the account's profile page.
+                example: https://example.org/@some_user
+                type: string
+                x-go-name: URL
+            username:
+                description: The username of the account, not including domain.
+                example: some_user
+                type: string
+                x-go-name: Username
         title: Account models a fediverse account.
+        type: object
         x-go-name: Account
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     accountRelationship:
+        properties:
+            blocked_by:
+                description: This account is blocking you.
+                type: boolean
+                x-go-name: BlockedBy
+            blocking:
+                description: You are blocking this account.
+                type: boolean
+                x-go-name: Blocking
+            domain_blocking:
+                description: You are blocking this account's domain.
+                type: boolean
+                x-go-name: DomainBlocking
+            endorsed:
+                description: You are featuring this account on your profile.
+                type: boolean
+                x-go-name: Endorsed
+            followed_by:
+                description: This account follows you.
+                type: boolean
+                x-go-name: FollowedBy
+            following:
+                description: You are following this account.
+                type: boolean
+                x-go-name: Following
+            id:
+                description: The account id.
+                example: 01FBW9XGEP7G6K88VY4S9MPE1R
+                type: string
+                x-go-name: ID
+            muting:
+                description: You are muting this account.
+                type: boolean
+                x-go-name: Muting
+            muting_notifications:
+                description: You are muting notifications from this account.
+                type: boolean
+                x-go-name: MutingNotifications
+            note:
+                description: Your note on this account.
+                type: string
+                x-go-name: Note
+            notifying:
+                description: You are seeing notifications when this account posts.
+                type: boolean
+                x-go-name: Notifying
+            requested:
+                description: You have requested to follow this account, and the request is pending.
+                type: boolean
+                x-go-name: Requested
+            showing_reblogs:
+                description: You are seeing reblogs/boosts from this account in your home timeline.
+                type: boolean
+                x-go-name: ShowingReblogs
         title: Relationship represents a relationship between accounts.
+        type: object
         x-go-name: Relationship
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     accountRole:
+        properties:
+            name:
+                type: string
+                x-go-name: Name
         title: AccountRole models the role of an account.
+        type: object
         x-go-name: AccountRole
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     adminAccountInfo:
+        properties:
+            account:
+                $ref: '#/definitions/account'
+            approved:
+                description: Whether the account is currently approved.
+                type: boolean
+                x-go-name: Approved
+            confirmed:
+                description: Whether the account has confirmed their email address.
+                type: boolean
+                x-go-name: Confirmed
+            created_at:
+                description: When the account was first discovered. (ISO 8601 Datetime)
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            created_by_application_id:
+                description: The ID of the application that created this account.
+                type: string
+                x-go-name: CreatedByApplicationID
+            disabled:
+                description: Whether the account is currently disabled.
+                type: boolean
+                x-go-name: Disabled
+            domain:
+                description: |-
+                    The domain of the account.
+                    Null for local accounts.
+                example: example.org
+                type: string
+                x-go-name: Domain
+            email:
+                description: |-
+                    The email address associated with the account.
+                    Empty string for remote accounts or accounts with
+                    no known email address.
+                example: someone@somewhere.com
+                type: string
+                x-go-name: Email
+            id:
+                description: The ID of the account in the database.
+                example: 01GQ4PHNT622DQ9X95XQX4KKNR
+                type: string
+                x-go-name: ID
+            invite_request:
+                description: |-
+                    The reason given when requesting an invite.
+                    Null if not known / remote account.
+                example: Pleaaaaaaaaaaaaaaase!!
+                type: string
+                x-go-name: InviteRequest
+            invited_by_account_id:
+                description: The ID of the account that invited this user
+                type: string
+                x-go-name: InvitedByAccountID
+            ip:
+                description: |-
+                    The IP address last used to login to this account.
+                    Null if not known.
+                example: 192.0.2.1
+                type: string
+                x-go-name: IP
+            ips:
+                description: |-
+                    All known IP addresses associated with this account.
+                    NOT IMPLEMENTED (will always be empty array).
+                example: []
+                items: {}
+                type: array
+                x-go-name: IPs
+            locale:
+                description: The locale of the account. (ISO 639 Part 1 two-letter language code)
+                example: en
+                type: string
+                x-go-name: Locale
+            role:
+                $ref: '#/definitions/accountRole'
+            silenced:
+                description: Whether the account is currently silenced
+                type: boolean
+                x-go-name: Silenced
+            suspended:
+                description: Whether the account is currently suspended.
+                type: boolean
+                x-go-name: Suspended
+            username:
+                description: The username of the account.
+                example: dril
+                type: string
+                x-go-name: Username
         title: AdminAccountInfo models the admin view of an account's details.
+        type: object
         x-go-name: AdminAccountInfo
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     adminEmoji:
+        properties:
+            category:
+                description: Used for sorting custom emoji in the picker.
+                example: blobcats
+                type: string
+                x-go-name: Category
+            content_type:
+                description: The MIME content type of the emoji.
+                example: image/png
+                type: string
+                x-go-name: ContentType
+            disabled:
+                description: True if this emoji has been disabled by an admin action.
+                example: false
+                type: boolean
+                x-go-name: Disabled
+            domain:
+                description: The domain from which the emoji originated. Only defined for remote domains, otherwise key will not be set.
+                example: example.org
+                type: string
+                x-go-name: Domain
+            id:
+                description: The ID of the emoji.
+                example: 01GEM7SFDZ7GZNRXFVZ3X4E4N1
+                type: string
+                x-go-name: ID
+            shortcode:
+                description: The name of the custom emoji.
+                example: blobcat_uwu
+                type: string
+                x-go-name: Shortcode
+            static_url:
+                description: A link to a static copy of the custom emoji.
+                example: https://example.org/fileserver/emojis/blogcat_uwu.png
+                type: string
+                x-go-name: StaticURL
+            total_file_size:
+                description: The total file size taken up by the emoji in bytes, including static and animated versions.
+                example: 69420
+                format: int64
+                type: integer
+                x-go-name: TotalFileSize
+            updated_at:
+                description: Time when the emoji image was last updated.
+                example: "2022-10-05T09:21:26.419Z"
+                type: string
+                x-go-name: UpdatedAt
+            uri:
+                description: The ActivityPub URI of the emoji.
+                example: https://example.org/emojis/016T5Q3SQKBT337DAKVSKNXXW1
+                type: string
+                x-go-name: URI
+            url:
+                description: Web URL of the custom emoji.
+                example: https://example.org/fileserver/emojis/blogcat_uwu.gif
+                type: string
+                x-go-name: URL
+            visible_in_picker:
+                description: Emoji is visible in the emoji picker of the instance.
+                example: true
+                type: boolean
+                x-go-name: VisibleInPicker
         title: AdminEmoji models the admin view of a custom emoji.
+        type: object
         x-go-name: AdminEmoji
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     adminReport:
+        properties:
+            account:
+                $ref: '#/definitions/adminAccountInfo'
+            action_taken:
+                description: Whether an action has been taken by an admin in response to this report.
+                example: false
+                type: boolean
+                x-go-name: ActionTaken
+            action_taken_at:
+                description: |-
+                    If an action was taken, at what time was this done? (ISO 8601 Datetime)
+                    Will be null if not set / no action yet taken.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: ActionTakenAt
+            action_taken_by_account:
+                $ref: '#/definitions/adminAccountInfo'
+            action_taken_comment:
+                description: |-
+                    If an action was taken, what comment was made by the admin on the taken action?
+                    Will be null if not set / no action yet taken.
+                example: Account was suspended.
+                type: string
+                x-go-name: ActionTakenComment
+            assigned_account:
+                $ref: '#/definitions/adminAccountInfo'
+            category:
+                description: Under what category was this report created?
+                example: spam
+                type: string
+                x-go-name: Category
+            comment:
+                description: |-
+                    Comment submitted when the report was created.
+                    Will be empty if no comment was submitted.
+                example: This person has been harassing me.
+                type: string
+                x-go-name: Comment
+            created_at:
+                description: The date when this report was created (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            forwarded:
+                description: Bool to indicate that report should be federated to remote instance.
+                example: true
+                type: boolean
+                x-go-name: Forwarded
+            id:
+                description: ID of the report.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: ID
+            rule_ids:
+                description: |-
+                    Array of rule IDs that were submitted along with this report.
+                    NOT IMPLEMENTED, will always be empty array.
+                items: {}
+                type: array
+                x-go-name: Rules
+            statuses:
+                description: |-
+                    Array of  statuses that were submitted along with this report.
+                    Will be empty if no status IDs were submitted with the report.
+                items:
+                    $ref: '#/definitions/status'
+                type: array
+                x-go-name: Statuses
+            target_account:
+                $ref: '#/definitions/adminAccountInfo'
+            updated_at:
+                description: Time of last action on this report (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: UpdatedAt
         title: AdminReport models the admin view of a report.
+        type: object
         x-go-name: AdminReport
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     advancedVisibilityFlagsForm:
         description: |-
             AdvancedVisibilityFlagsForm allows a few more advanced flags to be set on new statuses, in addition
             to the standard mastodon-compatible ones.
+        properties:
+            boostable:
+                description: This status can be boosted/reblogged.
+                type: boolean
+                x-go-name: Boostable
+            federated:
+                description: This status will be federated beyond the local timeline(s).
+                type: boolean
+                x-go-name: Federated
+            likeable:
+                description: This status can be liked/faved.
+                type: boolean
+                x-go-name: Likeable
+            replyable:
+                description: This status can be replied to.
+                type: boolean
+                x-go-name: Replyable
+        type: object
         x-go-name: AdvancedVisibilityFlagsForm
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     announcement:
+        properties:
+            all_day:
+                description: Announcement doesn't have begin time and end time, but begin day and end day.
+                type: boolean
+                x-go-name: AllDay
+            content:
+                description: |-
+                    The body of the announcement.
+                    Should be HTML formatted.
+                example: <p>This is an announcement. No malarky.</p>
+                type: string
+                x-go-name: Content
+            emoji:
+                description: Emojis used in this announcement.
+                items:
+                    $ref: '#/definitions/emoji'
+                type: array
+                x-go-name: Emojis
+            ends_at:
+                description: |-
+                    When the announcement should stop being displayed (ISO 8601 Datetime).
+                    If the announcement has no end time, this will be omitted or empty.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: EndsAt
+            id:
+                description: The ID of the announcement.
+                example: 01FC30T7X4TNCZK0TH90QYF3M4
+                type: string
+                x-go-name: ID
+            mentions:
+                description: Mentions this announcement contains.
+                items:
+                    $ref: '#/definitions/Mention'
+                type: array
+                x-go-name: Mentions
+            published:
+                description: |-
+                    Announcement is 'published', ie., visible to users.
+                    Announcements that are not published should be shown only to admins.
+                type: boolean
+                x-go-name: Published
+            published_at:
+                description: When the announcement was first published (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: PublishedAt
+            reactions:
+                description: Reactions to this announcement.
+                items:
+                    $ref: '#/definitions/announcementReaction'
+                type: array
+                x-go-name: Reactions
+            read:
+                description: Requesting account has seen this announcement.
+                type: boolean
+                x-go-name: Read
+            starts_at:
+                description: |-
+                    When the announcement should begin to be displayed (ISO 8601 Datetime).
+                    If the announcement has no start time, this will be omitted or empty.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: StartsAt
+            statuses:
+                description: Statuses contained in this announcement.
+                items:
+                    $ref: '#/definitions/status'
+                type: array
+                x-go-name: Statuses
+            tags:
+                description: Tags used in this announcement.
+                items:
+                    $ref: '#/definitions/tag'
+                type: array
+                x-go-name: Tags
+            updated_at:
+                description: When the announcement was last updated (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: UpdatedAt
         title: Announcement models an admin announcement for the instance.
+        type: object
         x-go-name: Announcement
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     announcementReaction:
+        properties:
+            count:
+                description: The total number of users who have added this reaction.
+                example: 5
+                format: int64
+                type: integer
+                x-go-name: Count
+            me:
+                description: This reaction belongs to the account viewing it.
+                type: boolean
+                x-go-name: Me
+            name:
+                description: The emoji used for the reaction. Either a unicode emoji, or a custom emoji's shortcode.
+                example: blobcat_uwu
+                type: string
+                x-go-name: Name
+            static_url:
+                description: |-
+                    Web link to a non-animated image of the custom emoji.
+                    Empty for unicode emojis.
+                example: https://example.org/custom_emojis/statuc/blobcat_uwu.png
+                type: string
+                x-go-name: StaticURL
+            url:
+                description: |-
+                    Web link to the image of the custom emoji.
+                    Empty for unicode emojis.
+                example: https://example.org/custom_emojis/original/blobcat_uwu.png
+                type: string
+                x-go-name: URL
         title: AnnouncementReaction models a user reaction to an announcement.
+        type: object
         x-go-name: AnnouncementReaction
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     application:
+        properties:
+            client_id:
+                description: Client ID associated with this application.
+                type: string
+                x-go-name: ClientID
+            client_secret:
+                description: Client secret associated with this application.
+                type: string
+                x-go-name: ClientSecret
+            id:
+                description: The ID of the application.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: ID
+            name:
+                description: The name of the application.
+                example: Tusky
+                type: string
+                x-go-name: Name
+            redirect_uri:
+                description: Post-authorization redirect URI for the application (OAuth2).
+                example: https://example.org/callback?some=query
+                type: string
+                x-go-name: RedirectURI
+            vapid_key:
+                description: Push API key for this application.
+                type: string
+                x-go-name: VapidKey
+            website:
+                description: The website associated with the application (url)
+                example: https://tusky.app
+                type: string
+                x-go-name: Website
         title: Application models an api application.
+        type: object
         x-go-name: Application
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     attachment:
+        properties:
+            blurhash:
+                description: |-
+                    A hash computed by the BlurHash algorithm, for generating colorful preview thumbnails when media has not been downloaded yet.
+                    See https://github.com/woltapp/blurhash
+                type: string
+                x-go-name: Blurhash
+            description:
+                description: Alt text that describes what is in the media attachment.
+                example: This is a picture of a kitten.
+                type: string
+                x-go-name: Description
+            id:
+                description: The ID of the attachment.
+                example: 01FC31DZT1AYWDZ8XTCRWRBYRK
+                type: string
+                x-go-name: ID
+            meta:
+                $ref: '#/definitions/mediaMeta'
+            preview_remote_url:
+                description: |-
+                    The location of a scaled-down preview of the attachment on the remote server.
+                    Only defined for instances other than our own.
+                example: https://some-other-server.org/attachments/small/ahhhhh.jpeg
+                type: string
+                x-go-name: PreviewRemoteURL
+            preview_url:
+                description: The location of a scaled-down preview of the attachment.
+                example: https://example.org/fileserver/some_id/attachments/some_id/small/attachment.jpeg
+                type: string
+                x-go-name: PreviewURL
+            remote_url:
+                description: |-
+                    The location of the full-size original attachment on the remote server.
+                    Only defined for instances other than our own.
+                example: https://some-other-server.org/attachments/original/ahhhhh.jpeg
+                type: string
+                x-go-name: RemoteURL
+            text_url:
+                description: |-
+                    A shorter URL for the attachment.
+                    In our case, we just give the URL again since we don't create smaller URLs.
+                type: string
+                x-go-name: TextURL
+            type:
+                description: The type of the attachment.
+                example: image
+                type: string
+                x-go-name: Type
+            url:
+                description: The location of the original full-size attachment.
+                example: https://example.org/fileserver/some_id/attachments/some_id/original/attachment.jpeg
+                type: string
+                x-go-name: URL
         title: Attachment models a media attachment.
+        type: object
         x-go-name: Attachment
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     card:
+        properties:
+            author_name:
+                description: The author of the original resource.
+                example: weewee@buzzfeed.com
+                type: string
+                x-go-name: AuthorName
+            author_url:
+                description: A link to the author of the original resource.
+                example: https://buzzfeed.com/authors/weewee
+                type: string
+                x-go-name: AuthorURL
+            blurhash:
+                description: A hash computed by the BlurHash algorithm, for generating colorful preview thumbnails when media has not been downloaded yet.
+                type: string
+                x-go-name: Blurhash
+            description:
+                description: Description of preview.
+                example: Is water wet? We're not sure. In this article, we ask an expert...
+                type: string
+                x-go-name: Description
+            embed_url:
+                description: Used for photo embeds, instead of custom html.
+                type: string
+                x-go-name: EmbedURL
+            height:
+                description: Height of preview, in pixels.
+                format: int64
+                type: integer
+                x-go-name: Height
+            html:
+                description: HTML to be used for generating the preview card.
+                type: string
+                x-go-name: HTML
+            image:
+                description: Preview thumbnail.
+                example: https://example.org/fileserver/preview/thumb.jpg
+                type: string
+                x-go-name: Image
+            provider_name:
+                description: The provider of the original resource.
+                example: Buzzfeed
+                type: string
+                x-go-name: ProviderName
+            provider_url:
+                description: A link to the provider of the original resource.
+                example: https://buzzfeed.com
+                type: string
+                x-go-name: ProviderURL
+            title:
+                description: Title of linked resource.
+                example: Buzzfeed - Is Water Wet?
+                type: string
+                x-go-name: Title
+            type:
+                description: The type of the preview card.
+                example: link
+                type: string
+                x-go-name: Type
+            url:
+                description: Location of linked resource.
+                example: https://buzzfeed.com/some/fuckin/buzzfeed/article
+                type: string
+                x-go-name: URL
+            width:
+                description: Width of preview, in pixels.
+                format: int64
+                type: integer
+                x-go-name: Width
         title: Card represents a rich preview card that is generated using OpenGraph tags from a URL.
+        type: object
         x-go-name: Card
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     domain:
         description: Domain represents a remote domain
+        properties:
+            domain:
+                description: The hostname of the domain.
+                example: example.org
+                type: string
+                x-go-name: Domain
+            public_comment:
+                description: If the domain is blocked, what's the publicly-stated reason for the block.
+                example: they smell
+                type: string
+                x-go-name: PublicComment
+            silenced_at:
+                description: Time at which this domain was silenced. Key will not be present on open domains.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: SilencedAt
+            suspended_at:
+                description: Time at which this domain was suspended. Key will not be present on open domains.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: SuspendedAt
+        type: object
         x-go-name: Domain
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     domainBlock:
         description: DomainBlock represents a block on one domain
+        properties:
+            created_at:
+                description: Time at which this block was created (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            created_by:
+                description: ID of the account that created this domain block.
+                example: 01FBW2758ZB6PBR200YPDDJK4C
+                type: string
+                x-go-name: CreatedBy
+            domain:
+                description: The hostname of the domain.
+                example: example.org
+                type: string
+                x-go-name: Domain
+            id:
+                description: The ID of the domain block.
+                example: 01FBW21XJA09XYX51KV5JVBW0F
+                readOnly: true
+                type: string
+                x-go-name: ID
+            obfuscate:
+                description: |-
+                    Obfuscate the domain name when serving this domain block publicly.
+                    A useful anti-harassment tool.
+                example: false
+                type: boolean
+                x-go-name: Obfuscate
+            private_comment:
+                description: Private comment for this block, visible to our instance admins only.
+                example: they are poopoo
+                type: string
+                x-go-name: PrivateComment
+            public_comment:
+                description: If the domain is blocked, what's the publicly-stated reason for the block.
+                example: they smell
+                type: string
+                x-go-name: PublicComment
+            silenced_at:
+                description: Time at which this domain was silenced. Key will not be present on open domains.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: SilencedAt
+            subscription_id:
+                description: The ID of the subscription that created/caused this domain block.
+                example: 01FBW25TF5J67JW3HFHZCSD23K
+                type: string
+                x-go-name: SubscriptionID
+            suspended_at:
+                description: Time at which this domain was suspended. Key will not be present on open domains.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: SuspendedAt
+        type: object
         x-go-name: DomainBlock
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     domainBlockCreateRequest:
+        properties:
+            domain:
+                description: hostname/domain to block
+                type: string
+                x-go-name: Domain
+            domains:
+                description: A list of domains to block. Only used if import=true is specified.
+                x-go-name: Domains
+            obfuscate:
+                description: whether the domain should be obfuscated when being displayed publicly
+                type: boolean
+                x-go-name: Obfuscate
+            private_comment:
+                description: private comment for other admins on why the domain was blocked
+                type: string
+                x-go-name: PrivateComment
+            public_comment:
+                description: public comment on the reason for the domain block
+                type: string
+                x-go-name: PublicComment
         title: DomainBlockCreateRequest is the form submitted as a POST to /api/v1/admin/domain_blocks to create a new block.
+        type: object
         x-go-name: DomainBlockCreateRequest
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     emoji:
+        properties:
+            category:
+                description: Used for sorting custom emoji in the picker.
+                example: blobcats
+                type: string
+                x-go-name: Category
+            shortcode:
+                description: The name of the custom emoji.
+                example: blobcat_uwu
+                type: string
+                x-go-name: Shortcode
+            static_url:
+                description: A link to a static copy of the custom emoji.
+                example: https://example.org/fileserver/emojis/blogcat_uwu.png
+                type: string
+                x-go-name: StaticURL
+            url:
+                description: Web URL of the custom emoji.
+                example: https://example.org/fileserver/emojis/blogcat_uwu.gif
+                type: string
+                x-go-name: URL
+            visible_in_picker:
+                description: Emoji is visible in the emoji picker of the instance.
+                example: true
+                type: boolean
+                x-go-name: VisibleInPicker
         title: Emoji represents a custom emoji.
+        type: object
         x-go-name: Emoji
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     emojiCategory:
+        properties:
+            id:
+                description: The ID of the custom emoji category.
+                type: string
+                x-go-name: ID
+            name:
+                description: The name of the custom emoji category.
+                type: string
+                x-go-name: Name
         title: EmojiCategory represents a custom emoji category.
+        type: object
         x-go-name: EmojiCategory
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     emojiCreateRequest:
+        properties:
+            CategoryName:
+                description: |-
+                    Category in which to place the new emoji. Will be uncategorized by default.
+                    CategoryName length should not exceed 64 characters.
+                type: string
+            Image:
+                description: Image file to use for the emoji. Must be png or gif and no larger than 50kb.
+            Shortcode:
+                description: Desired shortcode for the emoji, without surrounding colons. This must be unique for the domain.
+                example: blobcat_uwu
+                type: string
         title: EmojiCreateRequest represents a request to create a custom emoji made through the admin API.
+        type: object
         x-go-name: EmojiCreateRequest
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     emojiUpdateRequest:
+        properties:
+            CategoryName:
+                description: Category in which to place the emoji.
+                type: string
+            Image:
+                description: |-
+                    Image file to use for the emoji.
+                    Must be png or gif and no larger than 50kb.
+            Shortcode:
+                description: Desired shortcode for the emoji, without surrounding colons. This must be unique for the domain.
+                example: blobcat_uwu
+                type: string
+            type:
+                $ref: '#/definitions/EmojiUpdateType'
         title: EmojiUpdateRequest represents a request to update a custom emoji, made through the admin API.
+        type: object
         x-go-name: EmojiUpdateRequest
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     field:
+        properties:
+            name:
+                description: The key/name of this field.
+                example: pronouns
+                type: string
+                x-go-name: Name
+            value:
+                description: The value of this field.
+                example: they/them
+                type: string
+                x-go-name: Value
+            verified_at:
+                description: If this field has been verified, when did this occur? (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: VerifiedAt
         title: Field represents a name/value pair to display on an account's profile.
+        type: object
         x-go-name: Field
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceConfigurationAccounts:
+        properties:
+            allow_custom_css:
+                description: Whether or not accounts on this instance are allowed to upload custom CSS for profiles and statuses.
+                example: false
+                type: boolean
+                x-go-name: AllowCustomCSS
+            max_featured_tags:
+                description: |-
+                    The maximum number of featured tags allowed for each account.
+                    Currently not implemented, so this is hardcoded to 10.
+                format: int64
+                type: integer
+                x-go-name: MaxFeaturedTags
         title: InstanceConfigurationAccounts models instance account config parameters.
+        type: object
         x-go-name: InstanceConfigurationAccounts
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceConfigurationMediaAttachments:
+        properties:
+            image_matrix_limit:
+                description: |-
+                    Max allowed image size in pixels as height*width.
+
+                    GtS doesn't set a limit on this, but for compatibility
+                    we give Mastodon's 4096x4096px value here.
+                example: 16777216
+                format: int64
+                type: integer
+                x-go-name: ImageMatrixLimit
+            image_size_limit:
+                description: Max allowed image size in bytes
+                example: 2097152
+                format: int64
+                type: integer
+                x-go-name: ImageSizeLimit
+            supported_mime_types:
+                description: List of mime types that it's possible to upload to this instance.
+                example:
+                    - image/jpeg
+                    - image/gif
+                items:
+                    type: string
+                type: array
+                x-go-name: SupportedMimeTypes
+            video_frame_rate_limit:
+                description: Max allowed video frame rate.
+                example: 60
+                format: int64
+                type: integer
+                x-go-name: VideoFrameRateLimit
+            video_matrix_limit:
+                description: |-
+                    Max allowed video size in pixels as height*width.
+
+                    GtS doesn't set a limit on this, but for compatibility
+                    we give Mastodon's 4096x4096px value here.
+                example: 16777216
+                format: int64
+                type: integer
+                x-go-name: VideoMatrixLimit
+            video_size_limit:
+                description: Max allowed video size in bytes
+                example: 10485760
+                format: int64
+                type: integer
+                x-go-name: VideoSizeLimit
         title: InstanceConfigurationMediaAttachments models instance media attachment config parameters.
+        type: object
         x-go-name: InstanceConfigurationMediaAttachments
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceConfigurationPolls:
+        properties:
+            max_characters_per_option:
+                description: Number of characters allowed per option in the poll.
+                example: 50
+                format: int64
+                type: integer
+                x-go-name: MaxCharactersPerOption
+            max_expiration:
+                description: Maximum expiration time of the poll in seconds.
+                example: 2629746
+                format: int64
+                type: integer
+                x-go-name: MaxExpiration
+            max_options:
+                description: Number of options permitted in a poll on this instance.
+                example: 4
+                format: int64
+                type: integer
+                x-go-name: MaxOptions
+            min_expiration:
+                description: Minimum expiration time of the poll in seconds.
+                example: 300
+                format: int64
+                type: integer
+                x-go-name: MinExpiration
         title: InstanceConfigurationPolls models instance poll config parameters.
+        type: object
         x-go-name: InstanceConfigurationPolls
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceConfigurationStatuses:
+        properties:
+            characters_reserved_per_url:
+                description: Amount of characters clients should assume a url takes up.
+                example: 25
+                format: int64
+                type: integer
+                x-go-name: CharactersReservedPerURL
+            max_characters:
+                description: Maximum allowed length of a post on this instance, in characters.
+                example: 5000
+                format: int64
+                type: integer
+                x-go-name: MaxCharacters
+            max_media_attachments:
+                description: Max number of attachments allowed on a status.
+                example: 4
+                format: int64
+                type: integer
+                x-go-name: MaxMediaAttachments
         title: InstanceConfigurationStatuses models instance status config parameters.
+        type: object
         x-go-name: InstanceConfigurationStatuses
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV1:
+        properties:
+            account_domain:
+                description: |-
+                    The domain of accounts on this instance.
+                    This will not necessarily be the same as
+                    simply the Host part of the URI.
+                example: example.org
+                type: string
+                x-go-name: AccountDomain
+            approval_required:
+                description: New account registrations require admin approval.
+                type: boolean
+                x-go-name: ApprovalRequired
+            configuration:
+                $ref: '#/definitions/instanceV1Configuration'
+            contact_account:
+                $ref: '#/definitions/account'
+            description:
+                description: |-
+                    Description of the instance.
+
+                    Should be HTML formatted, but might be plaintext.
+
+                    This should be displayed on the 'about' page for an instance.
+                type: string
+                x-go-name: Description
+            email:
+                description: An email address that may be used for inquiries.
+                example: admin@example.org
+                type: string
+                x-go-name: Email
+            invites_enabled:
+                description: Invites are enabled on this instance.
+                type: boolean
+                x-go-name: InvitesEnabled
+            languages:
+                description: Primary language of the instance.
+                example: en
+                items:
+                    type: string
+                type: array
+                x-go-name: Languages
+            max_toot_chars:
+                description: |-
+                    Maximum allowed length of a post on this instance, in characters.
+
+                    This is provided for compatibility with Tusky and other apps.
+                example: 5000
+                format: uint64
+                type: integer
+                x-go-name: MaxTootChars
+            registrations:
+                description: New account registrations are enabled on this instance.
+                type: boolean
+                x-go-name: Registrations
+            short_description:
+                description: |-
+                    A shorter description of the instance.
+
+                    Should be HTML formatted, but might be plaintext.
+
+                    This should be displayed on the instance splash/landing page.
+                type: string
+                x-go-name: ShortDescription
+            stats:
+                additionalProperties:
+                    format: int64
+                    type: integer
+                description: 'Statistics about the instance: number of posts, accounts, etc.'
+                type: object
+                x-go-name: Stats
+            thumbnail:
+                description: URL of the instance avatar/banner image.
+                example: https://example.org/files/instance/thumbnail.jpeg
+                type: string
+                x-go-name: Thumbnail
+            thumbnail_description:
+                description: Description of the instance thumbnail.
+                example: picture of a cute lil' friendly sloth
+                type: string
+                x-go-name: ThumbnailDescription
+            thumbnail_type:
+                description: MIME type of the instance thumbnail.
+                example: image/png
+                type: string
+                x-go-name: ThumbnailType
+            title:
+                description: The title of the instance.
+                example: GoToSocial Example Instance
+                type: string
+                x-go-name: Title
+            uri:
+                description: The URI of the instance.
+                example: https://gts.example.org
+                type: string
+                x-go-name: URI
+            urls:
+                $ref: '#/definitions/instanceV1URLs'
+            version:
+                description: |-
+                    The version of GoToSocial installed on the instance.
+
+                    This will contain at least a semantic version number.
+
+                    It may also contain, after a space, the short git commit ID of the running software.
+                example: 0.1.1 cb85f65
+                type: string
+                x-go-name: Version
         title: InstanceV1 models information about this instance.
+        type: object
         x-go-name: InstanceV1
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV1Configuration:
+        properties:
+            accounts:
+                $ref: '#/definitions/instanceConfigurationAccounts'
+            emojis:
+                $ref: '#/definitions/InstanceConfigurationEmojis'
+            media_attachments:
+                $ref: '#/definitions/instanceConfigurationMediaAttachments'
+            polls:
+                $ref: '#/definitions/instanceConfigurationPolls'
+            statuses:
+                $ref: '#/definitions/instanceConfigurationStatuses'
         title: InstanceV1Configuration models instance configuration parameters.
+        type: object
         x-go-name: InstanceV1Configuration
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV1URLs:
-        title: InstanceV2URLs models instance-relevant URLs for client application consumption.
-        x-go-name: InstanceV2URLs
+        properties:
+            streaming_api:
+                description: Websockets address for status and notification streaming.
+                example: wss://example.org
+                type: string
+                x-go-name: StreamingAPI
+        title: InstanceV1URLs models instance-relevant URLs for client application consumption.
+        type: object
+        x-go-name: InstanceV1URLs
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2:
+        properties:
+            account_domain:
+                description: |-
+                    The domain of accounts on this instance.
+                    This will not necessarily be the same as
+                    domain.
+                example: example.org
+                type: string
+                x-go-name: AccountDomain
+            configuration:
+                $ref: '#/definitions/instanceV2Configuration'
+            contact:
+                $ref: '#/definitions/instanceV2Contact'
+            description:
+                description: |-
+                    Description of the instance.
+
+                    Should be HTML formatted, but might be plaintext.
+
+                    This should be displayed on the 'about' page for an instance.
+                type: string
+                x-go-name: Description
+            domain:
+                description: The domain of the instance.
+                example: gts.example.org
+                type: string
+                x-go-name: Domain
+            languages:
+                description: Primary languages of the instance + moderators/admins.
+                example:
+                    - en
+                items:
+                    type: string
+                type: array
+                x-go-name: Languages
+            registrations:
+                $ref: '#/definitions/instanceV2Registrations'
+            rules:
+                description: |-
+                    An itemized list of rules for this website.
+                    Currently not implemented (will always be empty array).
+                items: {}
+                type: array
+                x-go-name: Rules
+            source_url:
+                description: The URL for the source code of the software running on this instance, in keeping with AGPL license requirements.
+                example: https://github.com/superseriousbusiness/gotosocial
+                type: string
+                x-go-name: SourceURL
+            thumbnail:
+                $ref: '#/definitions/instanceV2Thumbnail'
+            title:
+                description: The title of the instance.
+                example: GoToSocial Example Instance
+                type: string
+                x-go-name: Title
+            usage:
+                $ref: '#/definitions/instanceV2Usage'
+            version:
+                description: |-
+                    The version of GoToSocial installed on the instance.
+
+                    This will contain at least a semantic version number.
+
+                    It may also contain, after a space, the short git commit ID of the running software.
+                example: 0.1.1 cb85f65
+                type: string
+                x-go-name: Version
         title: InstanceV2 models information about this instance.
+        type: object
         x-go-name: InstanceV2
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2Configuration:
+        properties:
+            accounts:
+                $ref: '#/definitions/instanceConfigurationAccounts'
+            emojis:
+                $ref: '#/definitions/InstanceConfigurationEmojis'
+            media_attachments:
+                $ref: '#/definitions/instanceConfigurationMediaAttachments'
+            polls:
+                $ref: '#/definitions/instanceConfigurationPolls'
+            statuses:
+                $ref: '#/definitions/instanceConfigurationStatuses'
+            translation:
+                $ref: '#/definitions/instanceV2ConfigurationTranslation'
+            urls:
+                $ref: '#/definitions/instanceV1URLs'
         title: Configured values and limits for this instance.
+        type: object
         x-go-name: InstanceV2Configuration
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2ConfigurationTranslation:
+        properties:
+            enabled:
+                description: |-
+                    Whether the Translations API is available on this instance.
+                    Not implemented so this value is always false.
+                type: boolean
+                x-go-name: Enabled
         title: Hints related to translation.
+        type: object
         x-go-name: InstanceV2ConfigurationTranslation
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2Contact:
+        properties:
+            account:
+                $ref: '#/definitions/account'
+            email:
+                description: |-
+                    An email address that can be messaged regarding inquiries or issues.
+                    Empty string if no email address set.
+                example: someone@example.org
+                type: string
+                x-go-name: Email
         title: Hints related to contacting a representative of the instance.
+        type: object
         x-go-name: InstanceV2Contact
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2Registrations:
+        properties:
+            approval_required:
+                description: Whether registrations require moderator approval.
+                example: true
+                type: boolean
+                x-go-name: ApprovalRequired
+            enabled:
+                description: Whether registrations are enabled.
+                example: false
+                type: boolean
+                x-go-name: Enabled
+            message:
+                description: |-
+                    A custom message (html string) to be shown when registrations are closed.
+                    Value will be null if no message is set.
+                example: <p>Registrations are currently closed on example.org because of spam bots!</p>
+                type: string
+                x-go-name: Message
         title: Information about registering for this instance.
+        type: object
         x-go-name: InstanceV2Registrations
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2Thumbnail:
+        properties:
+            blurhash:
+                description: |-
+                    A hash computed by the BlurHash algorithm, for generating colorful preview thumbnails when media has not been downloaded yet.
+                    Key/value not set if no blurhash available.
+                example: UeKUpFxuo~R%0nW;WCnhF6RjaJt757oJodS$
+                type: string
+                x-go-name: Blurhash
+            thumbnail_description:
+                description: |-
+                    Description of the instance thumbnail.
+                    Key/value not set if no description available.
+                example: picture of a cute lil' friendly sloth
+                type: string
+                x-go-name: Description
+            thumbnail_type:
+                description: |-
+                    MIME type of the instance thumbnail.
+                    Key/value not set if thumbnail image type unknown.
+                example: image/png
+                type: string
+                x-go-name: Type
+            url:
+                description: The URL for the thumbnail image.
+                example: https://example.org/fileserver/01BPSX2MKCRVMD4YN4D71G9CP5/attachment/original/01H88X0KQ2DFYYDSWYP93VDJZA.png
+                type: string
+                x-go-name: URL
+            versions:
+                $ref: '#/definitions/instanceV2ThumbnailVersions'
         title: An image used to represent this instance.
+        type: object
         x-go-name: InstanceV2Thumbnail
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2ThumbnailVersions:
+        properties:
+            '@1x':
+                description: |-
+                    The URL for the thumbnail image at 1x resolution.
+                    Key/value not set if scaled versions not available.
+                type: string
+                x-go-name: Size1URL
+            '@2x':
+                description: |-
+                    The URL for the thumbnail image at 2x resolution.
+                    Key/value not set if scaled versions not available.
+                type: string
+                x-go-name: Size2URL
         title: Links to scaled resolution images, for high DPI screens.
+        type: object
         x-go-name: InstanceV2ThumbnailVersions
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2Usage:
+        properties:
+            users:
+                $ref: '#/definitions/instanceV2Users'
         title: Usage data for this instance.
+        type: object
         x-go-name: InstanceV2Usage
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     instanceV2Users:
+        properties:
+            active_month:
+                description: |-
+                    The number of active users in the past 4 weeks.
+                    Currently not implemented: will always be 0.
+                example: 0
+                format: int64
+                type: integer
+                x-go-name: ActiveMonth
         title: Usage data related to users on this instance.
+        type: object
         x-go-name: InstanceV2Users
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     mediaDimensions:
+        properties:
+            aspect:
+                description: |-
+                    Aspect ratio of the media.
+                    Equal to width / height.
+                example: 1.777777778
+                format: float
+                type: number
+                x-go-name: Aspect
+            bitrate:
+                description: Bitrate of the media in bits per second.
+                example: 1000000
+                format: int64
+                type: integer
+                x-go-name: Bitrate
+            duration:
+                description: |-
+                    Duration of the media in seconds.
+                    Only set for video and audio.
+                example: 5.43
+                format: float
+                type: number
+                x-go-name: Duration
+            frame_rate:
+                description: |-
+                    Framerate of the media.
+                    Only set for video and gifs.
+                example: "30"
+                type: string
+                x-go-name: FrameRate
+            height:
+                description: |-
+                    Height of the media in pixels.
+                    Not set for audio.
+                example: 1080
+                format: int64
+                type: integer
+                x-go-name: Height
+            size:
+                description: |-
+                    Size of the media, in the format `[width]x[height]`.
+                    Not set for audio.
+                example: 1920x1080
+                type: string
+                x-go-name: Size
+            width:
+                description: |-
+                    Width of the media in pixels.
+                    Not set for audio.
+                example: 1920
+                format: int64
+                type: integer
+                x-go-name: Width
         title: MediaDimensions models detailed properties of a piece of media.
+        type: object
         x-go-name: MediaDimensions
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     mediaFocus:
+        properties:
+            x:
+                description: |-
+                    x position of the focus
+                    should be between -1 and 1
+                format: float
+                type: number
+                x-go-name: X
+            "y":
+                description: |-
+                    y position of the focus
+                    should be between -1 and 1
+                format: float
+                type: number
+                x-go-name: "Y"
         title: MediaFocus models the focal point of a piece of media.
+        type: object
         x-go-name: MediaFocus
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     mediaMeta:
         description: This can be metadata about an image, an audio file, video, etc.
+        properties:
+            focus:
+                $ref: '#/definitions/mediaFocus'
+            original:
+                $ref: '#/definitions/mediaDimensions'
+            small:
+                $ref: '#/definitions/mediaDimensions'
         title: MediaMeta models media metadata.
+        type: object
         x-go-name: MediaMeta
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     nodeinfo:
         description: 'See: https://nodeinfo.diaspora.software/schema.html'
+        properties:
+            metadata:
+                additionalProperties: {}
+                description: Free form key value pairs for software specific values. Clients should not rely on any specific key present.
+                type: object
+                x-go-name: Metadata
+            openRegistrations:
+                description: Whether this server allows open self-registration.
+                example: false
+                type: boolean
+                x-go-name: OpenRegistrations
+            protocols:
+                description: The protocols supported on this server.
+                items:
+                    type: string
+                type: array
+                x-go-name: Protocols
+            services:
+                $ref: '#/definitions/NodeInfoServices'
+            software:
+                $ref: '#/definitions/NodeInfoSoftware'
+            usage:
+                $ref: '#/definitions/NodeInfoUsage'
+            version:
+                description: The schema version
+                example: "2.0"
+                type: string
+                x-go-name: Version
         title: Nodeinfo represents a version 2.1 or version 2.0 nodeinfo schema.
+        type: object
         x-go-name: Nodeinfo
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     notification:
+        properties:
+            account:
+                $ref: '#/definitions/account'
+            created_at:
+                description: The timestamp of the notification (ISO 8601 Datetime)
+                type: string
+                x-go-name: CreatedAt
+            id:
+                description: The id of the notification in the database.
+                type: string
+                x-go-name: ID
+            status:
+                $ref: '#/definitions/status'
+            type:
+                description: |-
+                    The type of event that resulted in the notification.
+                    follow = Someone followed you
+                    follow_request = Someone requested to follow you
+                    mention = Someone mentioned you in their status
+                    reblog = Someone boosted one of your statuses
+                    favourite = Someone favourited one of your statuses
+                    poll = A poll you have voted in or created has ended
+                    status = Someone you enabled notifications for has posted a status
+                type: string
+                x-go-name: Type
         title: Notification represents a notification of an event relevant to the user.
+        type: object
         x-go-name: Notification
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     oauthToken:
+        properties:
+            access_token:
+                description: Access token used for authorization.
+                type: string
+                x-go-name: AccessToken
+            created_at:
+                description: When the OAuth token was generated (UNIX timestamp seconds).
+                example: 1627644520
+                format: int64
+                type: integer
+                x-go-name: CreatedAt
+            scope:
+                description: OAuth scopes granted by this token, space-separated.
+                example: read write admin
+                type: string
+                x-go-name: Scope
+            token_type:
+                description: OAuth token type. Will always be 'Bearer'.
+                example: bearer
+                type: string
+                x-go-name: TokenType
         title: Token represents an OAuth token used for authenticating with the GoToSocial API and performing actions.
+        type: object
         x-go-name: Token
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     poll:
+        properties:
+            emojis:
+                description: Custom emoji to be used for rendering poll options.
+                items:
+                    $ref: '#/definitions/emoji'
+                type: array
+                x-go-name: Emojis
+            expired:
+                description: Is the poll currently expired?
+                type: boolean
+                x-go-name: Expired
+            expires_at:
+                description: When the poll ends. (ISO 8601 Datetime), or null if the poll does not end
+                type: string
+                x-go-name: ExpiresAt
+            id:
+                description: The ID of the poll in the database.
+                example: 01FBYKMD1KBMJ0W6JF1YZ3VY5D
+                type: string
+                x-go-name: ID
+            multiple:
+                description: Does the poll allow multiple-choice answers?
+                type: boolean
+                x-go-name: Multiple
+            options:
+                description: Possible answers for the poll.
+                items:
+                    $ref: '#/definitions/pollOptions'
+                type: array
+                x-go-name: Options
+            own_votes:
+                description: When called with a user token, which options has the authorized user chosen? Contains an array of index values for options.
+                items:
+                    format: int64
+                    type: integer
+                type: array
+                x-go-name: OwnVotes
+            voted:
+                description: When called with a user token, has the authorized user voted?
+                type: boolean
+                x-go-name: Voted
+            voters_count:
+                description: How many unique accounts have voted on a multiple-choice poll. Null if multiple is false.
+                format: int64
+                type: integer
+                x-go-name: VotersCount
+            votes_count:
+                description: How many votes have been received.
+                format: int64
+                type: integer
+                x-go-name: VotesCount
         title: Poll represents a poll attached to a status.
+        type: object
         x-go-name: Poll
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     pollOptions:
+        properties:
+            title:
+                description: The text value of the poll option. String.
+                type: string
+                x-go-name: Title
+            votes_count:
+                description: |-
+                    The number of received votes for this option.
+                    Number, or null if results are not published yet.
+                format: int64
+                type: integer
+                x-go-name: VotesCount
         title: PollOptions represents the current vote counts for different poll options.
+        type: object
         x-go-name: PollOptions
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     report:
+        properties:
+            action_taken:
+                description: Whether an action has been taken by an admin in response to this report.
+                example: false
+                type: boolean
+                x-go-name: ActionTaken
+            action_taken_at:
+                description: |-
+                    If an action was taken, at what time was this done? (ISO 8601 Datetime)
+                    Will be null if not set / no action yet taken.
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: ActionTakenAt
+            action_taken_comment:
+                description: |-
+                    If an action was taken, what comment was made by the admin on the taken action?
+                    Will be null if not set / no action yet taken.
+                example: Account was suspended.
+                type: string
+                x-go-name: ActionTakenComment
+            category:
+                description: Under what category was this report created?
+                example: spam
+                type: string
+                x-go-name: Category
+            comment:
+                description: |-
+                    Comment submitted when the report was created.
+                    Will be empty if no comment was submitted.
+                example: This person has been harassing me.
+                type: string
+                x-go-name: Comment
+            created_at:
+                description: The date when this report was created (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            forwarded:
+                description: Bool to indicate that report should be federated to remote instance.
+                example: true
+                type: boolean
+                x-go-name: Forwarded
+            id:
+                description: ID of the report.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: ID
+            rule_ids:
+                description: |-
+                    Array of rule IDs that were submitted along with this report.
+                    Will be empty if no rule IDs were submitted.
+                example:
+                    - 1
+                    - 2
+                items:
+                    format: int64
+                    type: integer
+                type: array
+                x-go-name: RuleIDs
+            status_ids:
+                description: |-
+                    Array of IDs of statuses that were submitted along with this report.
+                    Will be empty if no status IDs were submitted.
+                example:
+                    - 01GPBN5YDY6JKBWE44H7YQBDCQ
+                    - 01GPBN65PDWSBPWVDD0SQCFFY3
+                items:
+                    type: string
+                type: array
+                x-go-name: StatusIDs
+            target_account:
+                $ref: '#/definitions/account'
         title: Report models a moderation report submitted to the instance, either via the client API or via the federated API.
+        type: object
         x-go-name: Report
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     searchResult:
+        properties:
+            accounts:
+                items:
+                    $ref: '#/definitions/account'
+                type: array
+                x-go-name: Accounts
+            hashtags:
+                items:
+                    $ref: '#/definitions/tag'
+                type: array
+                x-go-name: Hashtags
+            statuses:
+                items:
+                    $ref: '#/definitions/status'
+                type: array
+                x-go-name: Statuses
         title: SearchResult models a search result.
+        type: object
         x-go-name: SearchResult
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     status:
+        properties:
+            account:
+                $ref: '#/definitions/account'
+            application:
+                $ref: '#/definitions/application'
+            bookmarked:
+                description: This status has been bookmarked by the account viewing it.
+                type: boolean
+                x-go-name: Bookmarked
+            card:
+                $ref: '#/definitions/card'
+            content:
+                description: The content of this status. Should be HTML, but might also be plaintext in some cases.
+                example: <p>Hey this is a status!</p>
+                type: string
+                x-go-name: Content
+            created_at:
+                description: The date when this status was created (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            emojis:
+                description: Custom emoji to be used when rendering status content.
+                items:
+                    $ref: '#/definitions/emoji'
+                type: array
+                x-go-name: Emojis
+            favourited:
+                description: This status has been favourited by the account viewing it.
+                type: boolean
+                x-go-name: Favourited
+            favourites_count:
+                description: Number of favourites/likes this status has received, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: FavouritesCount
+            id:
+                description: ID of the status.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: ID
+            in_reply_to_account_id:
+                description: ID of the account being replied to.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: InReplyToAccountID
+            in_reply_to_id:
+                description: ID of the status being replied to.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: InReplyToID
+            language:
+                description: |-
+                    Primary language of this status (ISO 639 Part 1 two-letter language code).
+                    Will be null if language is not known.
+                example: en
+                type: string
+                x-go-name: Language
+            media_attachments:
+                description: Media that is attached to this status.
+                items:
+                    $ref: '#/definitions/attachment'
+                type: array
+                x-go-name: MediaAttachments
+            mentions:
+                description: Mentions of users within the status content.
+                items:
+                    $ref: '#/definitions/Mention'
+                type: array
+                x-go-name: Mentions
+            muted:
+                description: Replies to this status have been muted by the account viewing it.
+                type: boolean
+                x-go-name: Muted
+            pinned:
+                description: This status has been pinned by the account viewing it (only relevant for your own statuses).
+                type: boolean
+                x-go-name: Pinned
+            poll:
+                $ref: '#/definitions/poll'
+            reblog:
+                $ref: '#/definitions/statusReblogged'
+            reblogged:
+                description: This status has been boosted/reblogged by the account viewing it.
+                type: boolean
+                x-go-name: Reblogged
+            reblogs_count:
+                description: Number of times this status has been boosted/reblogged, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: ReblogsCount
+            replies_count:
+                description: Number of replies to this status, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: RepliesCount
+            sensitive:
+                description: Status contains sensitive content.
+                example: false
+                type: boolean
+                x-go-name: Sensitive
+            spoiler_text:
+                description: Subject, summary, or content warning for the status.
+                example: warning nsfw
+                type: string
+                x-go-name: SpoilerText
+            tags:
+                description: Hashtags used within the status content.
+                items:
+                    $ref: '#/definitions/tag'
+                type: array
+                x-go-name: Tags
+            text:
+                description: |-
+                    Plain-text source of a status. Returned instead of content when status is deleted,
+                    so the user may redraft from the source text without the client having to reverse-engineer
+                    the original text from the HTML content.
+                type: string
+                x-go-name: Text
+            uri:
+                description: ActivityPub URI of the status. Equivalent to the status's activitypub ID.
+                example: https://example.org/users/some_user/statuses/01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: URI
+            url:
+                description: The status's publicly available web URL. This link will only work if the visibility of the status is 'public'.
+                example: https://example.org/@some_user/statuses/01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: URL
+            visibility:
+                description: Visibility of this status.
+                example: unlisted
+                type: string
+                x-go-name: Visibility
         title: Status models a status or post.
+        type: object
         x-go-name: Status
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     statusContext:
+        properties:
+            ancestors:
+                description: Parents in the thread.
+                items:
+                    $ref: '#/definitions/status'
+                type: array
+                x-go-name: Ancestors
+            descendants:
+                description: Children in the thread.
+                items:
+                    $ref: '#/definitions/status'
+                type: array
+                x-go-name: Descendants
         title: Context models the tree around a given status.
+        type: object
         x-go-name: Context
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     statusCreateRequest:
+        properties:
+            format:
+                description: |-
+                    Format to use when parsing this status.
+                    in: formData
+                type: string
+                x-go-name: Format
+            in_reply_to_id:
+                description: |-
+                    ID of the status being replied to, if status is a reply.
+                    in: formData
+                type: string
+                x-go-name: InReplyToID
+            language:
+                description: |-
+                    ISO 639 language code for this status.
+                    in: formData
+                type: string
+                x-go-name: Language
+            media_ids:
+                description: |-
+                    Array of Attachment ids to be attached as media.
+                    If provided, status becomes optional, and poll cannot be used.
+
+                    If the status is being submitted as a form, the key is 'media_ids[]',
+                    but if it's json or xml, the key is 'media_ids'.
+
+                    in: formData
+                items:
+                    type: string
+                type: array
+                x-go-name: MediaIDs
+            scheduled_at:
+                description: |-
+                    ISO 8601 Datetime at which to schedule a status.
+                    Providing this parameter will cause ScheduledStatus to be returned instead of Status.
+                    Must be at least 5 minutes in the future.
+                    in: formData
+                type: string
+                x-go-name: ScheduledAt
+            sensitive:
+                description: |-
+                    Status and attached media should be marked as sensitive.
+                    in: formData
+                type: boolean
+                x-go-name: Sensitive
+            spoiler_text:
+                description: |-
+                    Text to be shown as a warning or subject before the actual content.
+                    Statuses are generally collapsed behind this field.
+                    in: formData
+                type: string
+                x-go-name: SpoilerText
+            status:
+                description: |-
+                    Text content of the status.
+                    If media_ids is provided, this becomes optional.
+                    Attaching a poll is optional while status is provided.
+                    in: formData
+                type: string
+                x-go-name: Status
+            visibility:
+                description: |-
+                    Visibility of the posted status.
+                    in: formData
+                type: string
+                x-go-name: Visibility
         title: StatusCreateRequest models status creation parameters.
+        type: object
         x-go-name: StatusCreateRequest
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     statusReblogged:
+        properties:
+            account:
+                $ref: '#/definitions/account'
+            application:
+                $ref: '#/definitions/application'
+            bookmarked:
+                description: This status has been bookmarked by the account viewing it.
+                type: boolean
+                x-go-name: Bookmarked
+            card:
+                $ref: '#/definitions/card'
+            content:
+                description: The content of this status. Should be HTML, but might also be plaintext in some cases.
+                example: <p>Hey this is a status!</p>
+                type: string
+                x-go-name: Content
+            created_at:
+                description: The date when this status was created (ISO 8601 Datetime).
+                example: "2021-07-30T09:20:25+00:00"
+                type: string
+                x-go-name: CreatedAt
+            emojis:
+                description: Custom emoji to be used when rendering status content.
+                items:
+                    $ref: '#/definitions/emoji'
+                type: array
+                x-go-name: Emojis
+            favourited:
+                description: This status has been favourited by the account viewing it.
+                type: boolean
+                x-go-name: Favourited
+            favourites_count:
+                description: Number of favourites/likes this status has received, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: FavouritesCount
+            id:
+                description: ID of the status.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: ID
+            in_reply_to_account_id:
+                description: ID of the account being replied to.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: InReplyToAccountID
+            in_reply_to_id:
+                description: ID of the status being replied to.
+                example: 01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: InReplyToID
+            language:
+                description: |-
+                    Primary language of this status (ISO 639 Part 1 two-letter language code).
+                    Will be null if language is not known.
+                example: en
+                type: string
+                x-go-name: Language
+            media_attachments:
+                description: Media that is attached to this status.
+                items:
+                    $ref: '#/definitions/attachment'
+                type: array
+                x-go-name: MediaAttachments
+            mentions:
+                description: Mentions of users within the status content.
+                items:
+                    $ref: '#/definitions/Mention'
+                type: array
+                x-go-name: Mentions
+            muted:
+                description: Replies to this status have been muted by the account viewing it.
+                type: boolean
+                x-go-name: Muted
+            pinned:
+                description: This status has been pinned by the account viewing it (only relevant for your own statuses).
+                type: boolean
+                x-go-name: Pinned
+            poll:
+                $ref: '#/definitions/poll'
+            reblog:
+                $ref: '#/definitions/statusReblogged'
+            reblogged:
+                description: This status has been boosted/reblogged by the account viewing it.
+                type: boolean
+                x-go-name: Reblogged
+            reblogs_count:
+                description: Number of times this status has been boosted/reblogged, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: ReblogsCount
+            replies_count:
+                description: Number of replies to this status, according to our instance.
+                format: int64
+                type: integer
+                x-go-name: RepliesCount
+            sensitive:
+                description: Status contains sensitive content.
+                example: false
+                type: boolean
+                x-go-name: Sensitive
+            spoiler_text:
+                description: Subject, summary, or content warning for the status.
+                example: warning nsfw
+                type: string
+                x-go-name: SpoilerText
+            tags:
+                description: Hashtags used within the status content.
+                items:
+                    $ref: '#/definitions/tag'
+                type: array
+                x-go-name: Tags
+            text:
+                description: |-
+                    Plain-text source of a status. Returned instead of content when status is deleted,
+                    so the user may redraft from the source text without the client having to reverse-engineer
+                    the original text from the HTML content.
+                type: string
+                x-go-name: Text
+            uri:
+                description: ActivityPub URI of the status. Equivalent to the status's activitypub ID.
+                example: https://example.org/users/some_user/statuses/01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: URI
+            url:
+                description: The status's publicly available web URL. This link will only work if the visibility of the status is 'public'.
+                example: https://example.org/@some_user/statuses/01FBVD42CQ3ZEEVMW180SBX03B
+                type: string
+                x-go-name: URL
+            visibility:
+                description: Visibility of this status.
+                example: unlisted
+                type: string
+                x-go-name: Visibility
         title: StatusReblogged represents a reblogged status.
+        type: object
         x-go-name: StatusReblogged
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     swaggerCollection:
+        properties:
+            '@context':
+                description: ActivityStreams context.
+                example: https://www.w3.org/ns/activitystreams
+                type: string
+                x-go-name: Context
+            first:
+                $ref: '#/definitions/swaggerCollectionPage'
+            id:
+                description: ActivityStreams ID.
+                example: https://example.org/users/some_user/statuses/106717595988259568/replies
+                type: string
+                x-go-name: ID
+            last:
+                $ref: '#/definitions/swaggerCollectionPage'
+            type:
+                description: ActivityStreams type.
+                example: Collection
+                type: string
+                x-go-name: Type
         title: SwaggerCollection represents an activitypub collection.
+        type: object
         x-go-name: SwaggerCollection
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/activitypub/users
     swaggerCollectionPage:
+        properties:
+            id:
+                description: ActivityStreams ID.
+                example: https://example.org/users/some_user/statuses/106717595988259568/replies?page=true
+                type: string
+                x-go-name: ID
+            items:
+                description: Items on this page.
+                example:
+                    - https://example.org/users/some_other_user/statuses/086417595981111564
+                    - https://another.example.com/users/another_user/statuses/01FCN8XDV3YG7B4R42QA6YQZ9R
+                items:
+                    type: string
+                type: array
+                x-go-name: Items
+            next:
+                description: Link to the next page.
+                example: https://example.org/users/some_user/statuses/106717595988259568/replies?only_other_accounts=true&page=true
+                type: string
+                x-go-name: Next
+            partOf:
+                description: Collection this page belongs to.
+                example: https://example.org/users/some_user/statuses/106717595988259568/replies
+                type: string
+                x-go-name: PartOf
+            type:
+                description: ActivityStreams type.
+                example: CollectionPage
+                type: string
+                x-go-name: Type
         title: SwaggerCollectionPage represents one page of a collection.
+        type: object
         x-go-name: SwaggerCollectionPage
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/activitypub/users
     tag:
+        properties:
+            name:
+                description: 'The value of the hashtag after the # sign.'
+                example: helloworld
+                type: string
+                x-go-name: Name
+            url:
+                description: Web link to the hashtag.
+                example: https://example.org/tags/helloworld
+                type: string
+                x-go-name: URL
         title: Tag represents a hashtag used within the content of a status.
+        type: object
         x-go-name: Tag
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     updateField:
         description: By default, max 4 fields and 255 characters per property/value.
+        properties:
+            name:
+                description: Name of the field
+                type: string
+                x-go-name: Name
+            value:
+                description: Value of the field
+                type: string
+                x-go-name: Value
         title: UpdateField is to be used specifically in an UpdateCredentialsRequest.
+        type: object
         x-go-name: UpdateField
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     updateSource:
+        properties:
+            language:
+                description: Default language to use for authored statuses. (ISO 6391)
+                type: string
+                x-go-name: Language
+            privacy:
+                description: Default post privacy for authored statuses.
+                type: string
+                x-go-name: Privacy
+            sensitive:
+                description: Mark authored statuses as sensitive by default.
+                type: boolean
+                x-go-name: Sensitive
+            status_format:
+                description: Default format for authored statuses (plain or markdown).
+                type: string
+                x-go-name: StatusFormat
         title: UpdateSource is to be used specifically in an UpdateCredentialsRequest.
+        type: object
         x-go-name: UpdateSource
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
     wellKnownResponse:
         description: See https://webfinger.net/
+        properties:
+            aliases:
+                items:
+                    type: string
+                type: array
+                x-go-name: Aliases
+            links:
+                items:
+                    $ref: '#/definitions/Link'
+                type: array
+                x-go-name: Links
+            subject:
+                type: string
+                x-go-name: Subject
         title: |-
             WellKnownResponse represents the response to either a webfinger request for an 'acct' resource, or a request to nodeinfo.
             For example, it would be returned from https://example.org/.well-known/webfinger?resource=acct:some_username@example.org
+        type: object
         x-go-name: WellKnownResponse
         x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
 host: example.org
@@ -2599,6 +4822,7 @@
                 - description: Visibility of the posted status.
                   in: formData
                   name: visibility
+                  type: string
                   x-go-name: Visibility
                 - description: |-
                     ISO 8601 Datetime at which to schedule a status.
@@ -2616,6 +4840,7 @@
                 - description: Format to use when parsing this status.
                   in: formData
                   name: format
+                  type: string
                   x-go-name: Format
                 - description: This status will be federated beyond the local timeline(s).
                   in: query

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a big diff, but the changes look valid to me and seem to improve things quite a bit. Feels like we haven't regenerated that properly in a while?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooof damn yeah those are a lot of changes. Which is odd because I did regenerate the swagger docs quite recently (within the last few days iirc). Could be just that the newer version works differently. Let's regenerate them in another PR after this is merged then.

Btw, we also have a go swagger version in the build container that we use for drone, i'll update that too: https://github.com/superseriousbusiness/gotosocial-drone-build/blob/main/.drone.yml

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tsmethurst tsmethurst merged commit e1b704e into superseriousbusiness:main Feb 26, 2023
@daenney daenney deleted the update-docker branch February 27, 2023 08:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants