swagger: "2.0"
info:
  title: api/v2/activity_service.proto
  version: version not set
tags:
  - name: ActivityService
  - name: UserService
  - name: AuthService
  - name: InboxService
  - name: ResourceService
  - name: MemoService
  - name: TagService
  - name: WebhookService
  - name: WorkspaceService
consumes:
  - application/json
produces:
  - application/json
paths:
  /api/v2/auth/signin:
    post:
      summary: SignIn signs in the user with the given username and password.
      operationId: AuthService_SignIn
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SignInResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: username
          in: query
          required: false
          type: string
        - name: password
          in: query
          required: false
          type: string
        - name: neverExpire
          in: query
          required: false
          type: boolean
      tags:
        - AuthService
  /api/v2/auth/signin/sso:
    post:
      summary: SignInWithSSO signs in the user with the given SSO code.
      operationId: AuthService_SignInWithSSO
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SignInWithSSOResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: idpId
          in: query
          required: false
          type: integer
          format: int32
        - name: code
          in: query
          required: false
          type: string
        - name: redirectUri
          in: query
          required: false
          type: string
      tags:
        - AuthService
  /api/v2/auth/signout:
    post:
      summary: SignOut signs out the user.
      operationId: AuthService_SignOut
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SignOutResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - AuthService
  /api/v2/auth/signup:
    post:
      summary: SignUp signs up the user with the given username and password.
      operationId: AuthService_SignUp
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SignUpResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: username
          in: query
          required: false
          type: string
        - name: password
          in: query
          required: false
          type: string
      tags:
        - AuthService
  /api/v2/auth/status:
    post:
      summary: GetAuthStatus returns the current auth status of the user.
      operationId: AuthService_GetAuthStatus
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetAuthStatusResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - AuthService
  /api/v2/inboxes:
    get:
      summary: ListInboxes lists inboxes for a user.
      operationId: InboxService_ListInboxes
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListInboxesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: user
          description: 'Format: users/{username}'
          in: query
          required: false
          type: string
      tags:
        - InboxService
  /api/v2/memos:
    get:
      summary: ListMemos lists memos with pagination and filter.
      operationId: MemoService_ListMemos
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListMemosResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: pageSize
          description: The maximum number of memos to return.
          in: query
          required: false
          type: integer
          format: int32
        - name: pageToken
          description: |-
            A page token, received from a previous `ListMemos` call.
            Provide this to retrieve the subsequent page.
          in: query
          required: false
          type: string
        - name: filter
          description: |-
            Filter is used to filter memos returned in the list.
            Format: "creator == users/{username} && visibilities == ['PUBLIC', 'PROTECTED']"
          in: query
          required: false
          type: string
      tags:
        - MemoService
    post:
      summary: CreateMemo creates a memo.
      operationId: MemoService_CreateMemo
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateMemoResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/v2CreateMemoRequest'
      tags:
        - MemoService
  /api/v2/memos/name/{name}:
    get:
      summary: GetMemoByName gets a memo by name.
      operationId: MemoService_GetMemoByName
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetMemoByNameResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          in: path
          required: true
          type: string
      tags:
        - MemoService
  /api/v2/memos/stats:
    get:
      summary: GetUserMemosStats gets stats of memos for a user.
      operationId: MemoService_GetUserMemosStats
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetUserMemosStatsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            name is the name of the user to get stats for.
            Format: users/{username}
          in: query
          required: false
          type: string
        - name: timezone
          description: |-
            timezone location
            Format: uses tz identifier
            https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
          in: query
          required: false
          type: string
        - name: filter
          description: Same as ListMemosRequest.filter
          in: query
          required: false
          type: string
      tags:
        - MemoService
  /api/v2/memos/{id}:
    get:
      summary: GetMemo gets a memo by id.
      operationId: MemoService_GetMemo
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetMemoResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
    delete:
      summary: DeleteMemo deletes a memo by id.
      operationId: MemoService_DeleteMemo
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteMemoResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
  /api/v2/memos/{id}/comments:
    get:
      summary: ListMemoComments lists comments for a memo.
      operationId: MemoService_ListMemoComments
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListMemoCommentsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
    post:
      summary: CreateMemoComment creates a comment for a memo.
      operationId: MemoService_CreateMemoComment
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateMemoCommentResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          description: id is the memo id to create comment for.
          in: path
          required: true
          type: integer
          format: int32
        - name: create.content
          in: query
          required: false
          type: string
        - name: create.visibility
          in: query
          required: false
          type: string
          enum:
            - VISIBILITY_UNSPECIFIED
            - PRIVATE
            - PROTECTED
            - PUBLIC
          default: VISIBILITY_UNSPECIFIED
      tags:
        - MemoService
  /api/v2/memos/{id}/reactions:
    get:
      summary: ListMemoReactions lists reactions for a memo.
      operationId: MemoService_ListMemoReactions
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListMemoReactionsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
    post:
      summary: UpsertMemoReaction upserts a reaction for a memo.
      operationId: MemoService_UpsertMemoReaction
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpsertMemoReactionResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
        - name: reaction.id
          in: query
          required: false
          type: integer
          format: int32
        - name: reaction.creator
          in: query
          required: false
          type: string
        - name: reaction.contentId
          in: query
          required: false
          type: string
        - name: reaction.reactionType
          in: query
          required: false
          type: string
          enum:
            - TYPE_UNSPECIFIED
            - THUMBS_UP
            - THUMBS_DOWN
            - HEART
            - FIRE
            - CLAPPING_HANDS
            - LAUGH
            - OK_HAND
            - ROCKET
            - EYES
            - THINKING_FACE
            - CLOWN_FACE
            - QUESTION_MARK
          default: TYPE_UNSPECIFIED
      tags:
        - MemoService
  /api/v2/memos/{id}/reactions/{reactionId}:
    delete:
      summary: DeleteMemoReaction deletes a reaction for a memo.
      operationId: MemoService_DeleteMemoReaction
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteMemoReactionResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
        - name: reactionId
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
  /api/v2/memos/{id}/relations:
    get:
      summary: ListMemoRelations lists relations for a memo.
      operationId: MemoService_ListMemoRelations
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListMemoRelationsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
    post:
      summary: SetMemoRelations sets relations for a memo.
      operationId: MemoService_SetMemoRelations
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SetMemoRelationsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/MemoServiceSetMemoRelationsBody'
      tags:
        - MemoService
  /api/v2/memos/{id}/resources:
    get:
      summary: ListMemoResources lists resources for a memo.
      operationId: MemoService_ListMemoResources
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListMemoResourcesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - MemoService
    post:
      summary: SetMemoResources sets resources for a memo.
      operationId: MemoService_SetMemoResources
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SetMemoResourcesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/MemoServiceSetMemoResourcesBody'
      tags:
        - MemoService
  /api/v2/memos/{memo.id}:
    patch:
      summary: UpdateMemo updates a memo.
      operationId: MemoService_UpdateMemo
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateMemoResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: memo.id
          description: id is the system generated unique identifier.
          in: path
          required: true
          type: integer
          format: int32
        - name: memo
          in: body
          required: true
          schema:
            type: object
            properties:
              name:
                type: string
                description: name is the user provided name.
              rowStatus:
                $ref: '#/definitions/apiv2RowStatus'
              creator:
                type: string
                title: |-
                  The name of the creator.
                  Format: users/{username}
              creatorId:
                type: integer
                format: int32
              createTime:
                type: string
                format: date-time
              updateTime:
                type: string
                format: date-time
              displayTime:
                type: string
                format: date-time
              content:
                type: string
              visibility:
                $ref: '#/definitions/v2Visibility'
              pinned:
                type: boolean
              parentId:
                type: integer
                format: int32
                readOnly: true
              resources:
                type: array
                items:
                  type: object
                  $ref: '#/definitions/v2Resource'
                readOnly: true
              relations:
                type: array
                items:
                  type: object
                  $ref: '#/definitions/v2MemoRelation'
                readOnly: true
              reactions:
                type: array
                items:
                  type: object
                  $ref: '#/definitions/apiv2Reaction'
                readOnly: true
      tags:
        - MemoService
  /api/v2/memos:export:
    post:
      summary: ExportMemos exports memos.
      operationId: MemoService_ExportMemos
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ExportMemosResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: filter
          description: Same as ListMemosRequest.filter
          in: query
          required: false
          type: string
      tags:
        - MemoService
  /api/v2/resources:
    get:
      summary: ListResources lists all resources.
      operationId: ResourceService_ListResources
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListResourcesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - ResourceService
    post:
      summary: CreateResource creates a new resource.
      operationId: ResourceService_CreateResource
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateResourceResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: filename
          in: query
          required: false
          type: string
        - name: externalLink
          in: query
          required: false
          type: string
        - name: type
          in: query
          required: false
          type: string
        - name: memoId
          in: query
          required: false
          type: integer
          format: int32
      tags:
        - ResourceService
  /api/v2/resources/name/{name}:
    get:
      summary: GetResourceByName returns a resource by name.
      operationId: ResourceService_GetResourceByName
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetResourceByNameResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          in: path
          required: true
          type: string
      tags:
        - ResourceService
  /api/v2/resources/{id}:
    get:
      summary: GetResource returns a resource by id.
      operationId: ResourceService_GetResource
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetResourceResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - ResourceService
    delete:
      summary: DeleteResource deletes a resource by id.
      operationId: ResourceService_DeleteResource
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteResourceResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - ResourceService
  /api/v2/resources/{resource.id}:
    patch:
      summary: UpdateResource updates a resource.
      operationId: ResourceService_UpdateResource
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateResourceResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: resource.id
          description: id is the system generated unique identifier.
          in: path
          required: true
          type: integer
          format: int32
        - name: resource
          in: body
          required: true
          schema:
            type: object
            properties:
              name:
                type: string
                description: name is the user provided name.
              createTime:
                type: string
                format: date-time
              filename:
                type: string
              externalLink:
                type: string
              type:
                type: string
              size:
                type: string
                format: int64
              memoId:
                type: integer
                format: int32
      tags:
        - ResourceService
  /api/v2/tags:
    get:
      summary: ListTags lists tags.
      operationId: TagService_ListTags
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListTagsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: user
          description: |-
            The creator of tags.
            Format: users/{username}
          in: query
          required: false
          type: string
      tags:
        - TagService
    delete:
      summary: DeleteTag deletes a tag.
      operationId: TagService_DeleteTag
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteTagResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: tag.name
          in: query
          required: false
          type: string
        - name: tag.creator
          description: |-
            The creator of tags.
            Format: users/{username}
          in: query
          required: false
          type: string
      tags:
        - TagService
    post:
      summary: UpsertTag upserts a tag.
      operationId: TagService_UpsertTag
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpsertTagResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          in: query
          required: false
          type: string
      tags:
        - TagService
  /api/v2/tags/suggestion:
    get:
      summary: GetTagSuggestions gets tag suggestions from the user's memos.
      operationId: TagService_GetTagSuggestions
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetTagSuggestionsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: user
          description: |-
            The creator of tags.
            Format: users/{username}
          in: query
          required: false
          type: string
      tags:
        - TagService
  /api/v2/tags:batchUpsert:
    post:
      summary: BatchUpsertTag upserts multiple tags.
      operationId: TagService_BatchUpsertTag
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2BatchUpsertTagResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - TagService
  /api/v2/tags:rename:
    patch:
      summary: |-
        RenameTag renames a tag.
        All related memos will be updated.
      operationId: TagService_RenameTag
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2RenameTagResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: user
          description: |-
            The creator of tags.
            Format: users/{username}
          in: query
          required: false
          type: string
        - name: oldName
          in: query
          required: false
          type: string
        - name: newName
          in: query
          required: false
          type: string
      tags:
        - TagService
  /api/v2/users:
    get:
      summary: ListUsers returns a list of users.
      operationId: UserService_ListUsers
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListUsersResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - UserService
    post:
      summary: CreateUser creates a new user.
      operationId: UserService_CreateUser
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateUserResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: user
          in: body
          required: true
          schema:
            $ref: '#/definitions/v2User'
      tags:
        - UserService
  /api/v2/webhooks:
    get:
      summary: ListWebhooks returns a list of webhooks.
      operationId: WebhookService_ListWebhooks
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListWebhooksResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: creatorId
          in: query
          required: false
          type: integer
          format: int32
      tags:
        - WebhookService
    post:
      summary: CreateWebhook creates a new webhook.
      operationId: WebhookService_CreateWebhook
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateWebhookResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/v2CreateWebhookRequest'
      tags:
        - WebhookService
  /api/v2/webhooks/{id}:
    get:
      summary: GetWebhook returns a webhook by id.
      operationId: WebhookService_GetWebhook
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetWebhookResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - WebhookService
    delete:
      summary: DeleteWebhook deletes a webhook by id.
      operationId: WebhookService_DeleteWebhook
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteWebhookResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - WebhookService
  /api/v2/webhooks/{webhook.id}:
    patch:
      summary: UpdateWebhook updates a webhook.
      operationId: WebhookService_UpdateWebhook
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateWebhookResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: webhook.id
          in: path
          required: true
          type: integer
          format: int32
        - name: webhook
          in: body
          required: true
          schema:
            type: object
            properties:
              creatorId:
                type: integer
                format: int32
              createdTime:
                type: string
                format: date-time
              updatedTime:
                type: string
                format: date-time
              rowStatus:
                $ref: '#/definitions/apiv2RowStatus'
              name:
                type: string
              url:
                type: string
      tags:
        - WebhookService
  /api/v2/workspace/profile:
    get:
      summary: GetWorkspaceProfile returns the workspace profile.
      operationId: WorkspaceService_GetWorkspaceProfile
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetWorkspaceProfileResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - WorkspaceService
    patch:
      summary: UpdateWorkspaceProfile updates the workspace profile.
      operationId: WorkspaceService_UpdateWorkspaceProfile
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateWorkspaceProfileResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: workspaceProfile
          description: System info is the updated data.
          in: body
          required: true
          schema:
            $ref: '#/definitions/v2WorkspaceProfile'
      tags:
        - WorkspaceService
  /api/v2/{inbox.name}:
    patch:
      summary: UpdateInbox updates an inbox.
      operationId: InboxService_UpdateInbox
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateInboxResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: inbox.name
          description: |-
            The name of the inbox.
            Format: inboxes/{uid}
          in: path
          required: true
          type: string
          pattern: inboxes/[^/]+
        - name: inbox
          in: body
          required: true
          schema:
            type: object
            properties:
              sender:
                type: string
                title: 'Format: users/{username}'
              receiver:
                type: string
                title: 'Format: users/{username}'
              status:
                $ref: '#/definitions/v2InboxStatus'
              createTime:
                type: string
                format: date-time
              type:
                $ref: '#/definitions/v2InboxType'
              activityId:
                type: integer
                format: int32
      tags:
        - InboxService
  /api/v2/{name_1}:
    delete:
      summary: DeleteInbox deletes an inbox.
      operationId: InboxService_DeleteInbox
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteInboxResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name_1
          description: |-
            The name of the inbox to delete.
            Format: inboxes/{uid}
          in: path
          required: true
          type: string
          pattern: inboxes/[^/]+
      tags:
        - InboxService
  /api/v2/{name}:
    get:
      summary: GetUser gets a user by name.
      operationId: UserService_GetUser
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetUserResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
      tags:
        - UserService
    delete:
      summary: DeleteUser deletes a user.
      operationId: UserService_DeleteUser
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteUserResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
      tags:
        - UserService
  /api/v2/{name}/access_tokens:
    get:
      summary: ListUserAccessTokens returns a list of access tokens for a user.
      operationId: UserService_ListUserAccessTokens
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListUserAccessTokensResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
      tags:
        - UserService
    post:
      summary: CreateUserAccessToken creates a new access token for a user.
      operationId: UserService_CreateUserAccessToken
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateUserAccessTokenResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/UserServiceCreateUserAccessTokenBody'
      tags:
        - UserService
  /api/v2/{name}/access_tokens/{accessToken}:
    delete:
      summary: DeleteUserAccessToken deletes an access token for a user.
      operationId: UserService_DeleteUserAccessToken
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteUserAccessTokenResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
        - name: accessToken
          description: access_token is the access token to delete.
          in: path
          required: true
          type: string
      tags:
        - UserService
  /api/v2/{name}/setting:
    get:
      summary: GetUserSetting gets the setting of a user.
      operationId: UserService_GetUserSetting
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetUserSettingResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
      tags:
        - UserService
  /api/v2/{setting.name}:
    patch:
      summary: UpdateUserSetting updates the setting of a user.
      operationId: UserService_UpdateUserSetting
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateUserSettingResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: setting.name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+/setting
        - name: setting
          in: body
          required: true
          schema:
            type: object
            properties:
              locale:
                type: string
                description: The preferred locale of the user.
              appearance:
                type: string
                description: The preferred appearance of the user.
              memoVisibility:
                type: string
                description: The default visibility of the memo.
              telegramUserId:
                type: string
                description: The telegram user id of the user.
              compactView:
                type: boolean
                description: The compact view for a memo.
      tags:
        - UserService
  /api/v2/{user.name}:
    patch:
      summary: UpdateUser updates a user.
      operationId: UserService_UpdateUser
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateUserResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: user.name
          description: |-
            The name of the user.
            Format: users/{username}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
        - name: user
          in: body
          required: true
          schema:
            type: object
            properties:
              id:
                type: integer
                format: int32
              role:
                $ref: '#/definitions/UserRole'
              username:
                type: string
              email:
                type: string
              nickname:
                type: string
              avatarUrl:
                type: string
              password:
                type: string
              rowStatus:
                $ref: '#/definitions/apiv2RowStatus'
              createTime:
                type: string
                format: date-time
              updateTime:
                type: string
                format: date-time
      tags:
        - UserService
  /v2/activities/{id}:
    get:
      summary: GetActivity returns the activity with the given id.
      operationId: ActivityService_GetActivity
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetActivityResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - ActivityService
definitions:
  MemoServiceSetMemoRelationsBody:
    type: object
    properties:
      relations:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2MemoRelation'
  MemoServiceSetMemoResourcesBody:
    type: object
    properties:
      resources:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Resource'
  UserRole:
    type: string
    enum:
      - ROLE_UNSPECIFIED
      - HOST
      - ADMIN
      - USER
    default: ROLE_UNSPECIFIED
  UserServiceCreateUserAccessTokenBody:
    type: object
    properties:
      description:
        type: string
      expiresAt:
        type: string
        format: date-time
  apiv2ActivityMemoCommentPayload:
    type: object
    properties:
      memoId:
        type: integer
        format: int32
      relatedMemoId:
        type: integer
        format: int32
  apiv2ActivityPayload:
    type: object
    properties:
      memoComment:
        $ref: '#/definitions/apiv2ActivityMemoCommentPayload'
      versionUpdate:
        $ref: '#/definitions/apiv2ActivityVersionUpdatePayload'
  apiv2ActivityVersionUpdatePayload:
    type: object
    properties:
      version:
        type: string
  apiv2Reaction:
    type: object
    properties:
      id:
        type: integer
        format: int32
      creator:
        type: string
      contentId:
        type: string
      reactionType:
        $ref: '#/definitions/apiv2ReactionType'
  apiv2ReactionType:
    type: string
    enum:
      - TYPE_UNSPECIFIED
      - THUMBS_UP
      - THUMBS_DOWN
      - HEART
      - FIRE
      - CLAPPING_HANDS
      - LAUGH
      - OK_HAND
      - ROCKET
      - EYES
      - THINKING_FACE
      - CLOWN_FACE
      - QUESTION_MARK
    default: TYPE_UNSPECIFIED
  apiv2RowStatus:
    type: string
    enum:
      - ROW_STATUS_UNSPECIFIED
      - ACTIVE
      - ARCHIVED
    default: ROW_STATUS_UNSPECIFIED
  apiv2UserSetting:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of the user.
          Format: users/{username}
      locale:
        type: string
        description: The preferred locale of the user.
      appearance:
        type: string
        description: The preferred appearance of the user.
      memoVisibility:
        type: string
        description: The default visibility of the memo.
      telegramUserId:
        type: string
        description: The telegram user id of the user.
      compactView:
        type: boolean
        description: The compact view for a memo.
  apiv2Webhook:
    type: object
    properties:
      id:
        type: integer
        format: int32
      creatorId:
        type: integer
        format: int32
      createdTime:
        type: string
        format: date-time
      updatedTime:
        type: string
        format: date-time
      rowStatus:
        $ref: '#/definitions/apiv2RowStatus'
      name:
        type: string
      url:
        type: string
  googlerpcStatus:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
      details:
        type: array
        items:
          type: object
          $ref: '#/definitions/protobufAny'
  protobufAny:
    type: object
    properties:
      '@type':
        type: string
    additionalProperties: {}
  v2Activity:
    type: object
    properties:
      id:
        type: integer
        format: int32
      creatorId:
        type: integer
        format: int32
      type:
        type: string
      level:
        type: string
      createTime:
        type: string
        format: date-time
      payload:
        $ref: '#/definitions/apiv2ActivityPayload'
  v2BatchUpsertTagResponse:
    type: object
  v2CreateMemoCommentResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2CreateMemoRequest:
    type: object
    properties:
      content:
        type: string
      visibility:
        $ref: '#/definitions/v2Visibility'
  v2CreateMemoResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2CreateResourceResponse:
    type: object
    properties:
      resource:
        $ref: '#/definitions/v2Resource'
  v2CreateUserAccessTokenResponse:
    type: object
    properties:
      accessToken:
        $ref: '#/definitions/v2UserAccessToken'
  v2CreateUserResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2CreateWebhookRequest:
    type: object
    properties:
      name:
        type: string
      url:
        type: string
  v2CreateWebhookResponse:
    type: object
    properties:
      webhook:
        $ref: '#/definitions/apiv2Webhook'
  v2DeleteInboxResponse:
    type: object
  v2DeleteMemoReactionResponse:
    type: object
  v2DeleteMemoResponse:
    type: object
  v2DeleteResourceResponse:
    type: object
  v2DeleteTagResponse:
    type: object
  v2DeleteUserAccessTokenResponse:
    type: object
  v2DeleteUserResponse:
    type: object
  v2DeleteWebhookResponse:
    type: object
  v2ExportMemosResponse:
    type: object
    properties:
      content:
        type: string
        format: byte
  v2GetActivityResponse:
    type: object
    properties:
      activity:
        $ref: '#/definitions/v2Activity'
  v2GetAuthStatusResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2GetMemoByNameResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2GetMemoResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2GetResourceByNameResponse:
    type: object
    properties:
      resource:
        $ref: '#/definitions/v2Resource'
  v2GetResourceResponse:
    type: object
    properties:
      resource:
        $ref: '#/definitions/v2Resource'
  v2GetTagSuggestionsResponse:
    type: object
    properties:
      tags:
        type: array
        items:
          type: string
  v2GetUserMemosStatsResponse:
    type: object
    properties:
      stats:
        type: object
        additionalProperties:
          type: integer
          format: int32
        description: |-
          stats is the stats of memo creating/updating activities.
          key is the year-month-day string. e.g. "2020-01-01".
  v2GetUserResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2GetUserSettingResponse:
    type: object
    properties:
      setting:
        $ref: '#/definitions/apiv2UserSetting'
  v2GetWebhookResponse:
    type: object
    properties:
      webhook:
        $ref: '#/definitions/apiv2Webhook'
  v2GetWorkspaceProfileResponse:
    type: object
    properties:
      workspaceProfile:
        $ref: '#/definitions/v2WorkspaceProfile'
  v2Inbox:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of the inbox.
          Format: inboxes/{uid}
      sender:
        type: string
        title: 'Format: users/{username}'
      receiver:
        type: string
        title: 'Format: users/{username}'
      status:
        $ref: '#/definitions/v2InboxStatus'
      createTime:
        type: string
        format: date-time
      type:
        $ref: '#/definitions/v2InboxType'
      activityId:
        type: integer
        format: int32
  v2InboxStatus:
    type: string
    enum:
      - STATUS_UNSPECIFIED
      - UNREAD
      - ARCHIVED
    default: STATUS_UNSPECIFIED
  v2InboxType:
    type: string
    enum:
      - TYPE_UNSPECIFIED
      - TYPE_MEMO_COMMENT
      - TYPE_VERSION_UPDATE
    default: TYPE_UNSPECIFIED
  v2ListInboxesResponse:
    type: object
    properties:
      inboxes:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Inbox'
  v2ListMemoCommentsResponse:
    type: object
    properties:
      memos:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Memo'
  v2ListMemoReactionsResponse:
    type: object
    properties:
      reactions:
        type: array
        items:
          type: object
          $ref: '#/definitions/apiv2Reaction'
  v2ListMemoRelationsResponse:
    type: object
    properties:
      relations:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2MemoRelation'
  v2ListMemoResourcesResponse:
    type: object
    properties:
      resources:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Resource'
  v2ListMemosResponse:
    type: object
    properties:
      memos:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Memo'
      nextPageToken:
        type: string
        description: |-
          A token, which can be sent as `page_token` to retrieve the next page.
          If this field is omitted, there are no subsequent pages.
  v2ListResourcesResponse:
    type: object
    properties:
      resources:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Resource'
  v2ListTagsResponse:
    type: object
    properties:
      tags:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Tag'
  v2ListUserAccessTokensResponse:
    type: object
    properties:
      accessTokens:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2UserAccessToken'
  v2ListUsersResponse:
    type: object
    properties:
      users:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2User'
  v2ListWebhooksResponse:
    type: object
    properties:
      webhooks:
        type: array
        items:
          type: object
          $ref: '#/definitions/apiv2Webhook'
  v2Memo:
    type: object
    properties:
      id:
        type: integer
        format: int32
        description: id is the system generated unique identifier.
      name:
        type: string
        description: name is the user provided name.
      rowStatus:
        $ref: '#/definitions/apiv2RowStatus'
      creator:
        type: string
        title: |-
          The name of the creator.
          Format: users/{username}
      creatorId:
        type: integer
        format: int32
      createTime:
        type: string
        format: date-time
      updateTime:
        type: string
        format: date-time
      displayTime:
        type: string
        format: date-time
      content:
        type: string
      visibility:
        $ref: '#/definitions/v2Visibility'
      pinned:
        type: boolean
      parentId:
        type: integer
        format: int32
        readOnly: true
      resources:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Resource'
        readOnly: true
      relations:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2MemoRelation'
        readOnly: true
      reactions:
        type: array
        items:
          type: object
          $ref: '#/definitions/apiv2Reaction'
        readOnly: true
  v2MemoRelation:
    type: object
    properties:
      memoId:
        type: integer
        format: int32
      relatedMemoId:
        type: integer
        format: int32
      type:
        $ref: '#/definitions/v2MemoRelationType'
  v2MemoRelationType:
    type: string
    enum:
      - TYPE_UNSPECIFIED
      - REFERENCE
      - COMMENT
    default: TYPE_UNSPECIFIED
  v2RenameTagResponse:
    type: object
    properties:
      tag:
        $ref: '#/definitions/v2Tag'
  v2Resource:
    type: object
    properties:
      id:
        type: integer
        format: int32
        description: id is the system generated unique identifier.
      name:
        type: string
        description: name is the user provided name.
      createTime:
        type: string
        format: date-time
      filename:
        type: string
      externalLink:
        type: string
      type:
        type: string
      size:
        type: string
        format: int64
      memoId:
        type: integer
        format: int32
  v2SetMemoRelationsResponse:
    type: object
  v2SetMemoResourcesResponse:
    type: object
  v2SignInResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2SignInWithSSOResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2SignOutResponse:
    type: object
  v2SignUpResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2Tag:
    type: object
    properties:
      name:
        type: string
      creator:
        type: string
        title: |-
          The creator of tags.
          Format: users/{username}
  v2UpdateInboxResponse:
    type: object
    properties:
      inbox:
        $ref: '#/definitions/v2Inbox'
  v2UpdateMemoResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2UpdateResourceResponse:
    type: object
    properties:
      resource:
        $ref: '#/definitions/v2Resource'
  v2UpdateUserResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2UpdateUserSettingResponse:
    type: object
    properties:
      setting:
        $ref: '#/definitions/apiv2UserSetting'
  v2UpdateWebhookResponse:
    type: object
    properties:
      webhook:
        $ref: '#/definitions/apiv2Webhook'
  v2UpdateWorkspaceProfileResponse:
    type: object
    properties:
      workspaceProfile:
        $ref: '#/definitions/v2WorkspaceProfile'
  v2UpsertMemoReactionResponse:
    type: object
    properties:
      reaction:
        $ref: '#/definitions/apiv2Reaction'
  v2UpsertTagRequest:
    type: object
    properties:
      name:
        type: string
  v2UpsertTagResponse:
    type: object
    properties:
      tag:
        $ref: '#/definitions/v2Tag'
  v2User:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of the user.
          Format: users/{username}
      id:
        type: integer
        format: int32
      role:
        $ref: '#/definitions/UserRole'
      username:
        type: string
      email:
        type: string
      nickname:
        type: string
      avatarUrl:
        type: string
      password:
        type: string
      rowStatus:
        $ref: '#/definitions/apiv2RowStatus'
      createTime:
        type: string
        format: date-time
      updateTime:
        type: string
        format: date-time
  v2UserAccessToken:
    type: object
    properties:
      accessToken:
        type: string
      description:
        type: string
      issuedAt:
        type: string
        format: date-time
      expiresAt:
        type: string
        format: date-time
  v2Visibility:
    type: string
    enum:
      - VISIBILITY_UNSPECIFIED
      - PRIVATE
      - PROTECTED
      - PUBLIC
    default: VISIBILITY_UNSPECIFIED
  v2WorkspaceProfile:
    type: object
    properties:
      version:
        type: string
      mode:
        type: string
      allowRegistration:
        type: boolean
      disablePasswordLogin:
        type: boolean
      additionalScript:
        type: string
      additionalStyle:
        type: string
