swagger: "2.0"
info:
  title: api/v2/activity_service.proto
  version: version not set
tags:
  - name: ActivityService
  - name: UserService
  - name: AuthService
  - name: IdentityProviderService
  - name: InboxService
  - name: LinkService
  - name: ResourceService
  - name: MemoService
  - name: StorageService
  - name: TagService
  - name: WebhookService
  - name: WorkspaceService
  - name: WorkspaceSettingService
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/identityProviders:
    get:
      operationId: IdentityProviderService_ListIdentityProviders
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListIdentityProvidersResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - IdentityProviderService
    post:
      operationId: IdentityProviderService_CreateIdentityProvider
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateIdentityProviderResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: identityProvider.name
          description: |-
            The name of the identityProvider.
            Format: identityProviders/{id}
          in: query
          required: false
          type: string
        - name: identityProvider.type
          in: query
          required: false
          type: string
          enum:
            - TYPE_UNSPECIFIED
            - OAUTH2
          default: TYPE_UNSPECIFIED
        - name: identityProvider.title
          in: query
          required: false
          type: string
        - name: identityProvider.identifierFilter
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.clientId
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.clientSecret
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.authUrl
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.tokenUrl
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.userInfoUrl
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.scopes
          in: query
          required: false
          type: array
          items:
            type: string
          collectionFormat: multi
        - name: identityProvider.config.oauth2.fieldMapping.identifier
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.fieldMapping.displayName
          in: query
          required: false
          type: string
        - name: identityProvider.config.oauth2.fieldMapping.email
          in: query
          required: false
          type: string
      tags:
        - IdentityProviderService
  /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/{id}'
          in: query
          required: false
          type: string
      tags:
        - InboxService
  /api/v2/link_metadata:
    get:
      operationId: LinkService_GetLinkMetadata
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetLinkMetadataResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: link
          in: query
          required: false
          type: string
      tags:
        - LinkService
  /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/{uid} && 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/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/{id}
          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: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/memos:search:
    get:
      summary: SearchMemos searches memos.
      operationId: MemoService_SearchMemos
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SearchMemosResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: filter
          description: |-
            Filter is used to filter memos returned.
            Format: "creator == users/{uid} && visibilities == ['PUBLIC', 'PROTECTED']"
          in: query
          required: false
          type: string
      tags:
        - MemoService
  /api/v2/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: reactionId
          in: path
          required: true
          type: integer
          format: int32
      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: resource.name
          description: |-
            The name of the resource.
            Format: resources/{id}
            id is the system generated unique identifier.
          in: query
          required: false
          type: string
        - name: resource.uid
          description: The user defined id of the resource.
          in: query
          required: false
          type: string
        - name: resource.createTime
          in: query
          required: false
          type: string
          format: date-time
        - name: resource.filename
          in: query
          required: false
          type: string
        - name: resource.content
          in: query
          required: false
          type: string
          format: byte
        - name: resource.externalLink
          in: query
          required: false
          type: string
        - name: resource.type
          in: query
          required: false
          type: string
        - name: resource.size
          in: query
          required: false
          type: string
          format: int64
        - name: resource.memo
          description: |-
            The related memo.
            Format: memos/{id}
          in: query
          required: false
          type: string
      tags:
        - ResourceService
  /api/v2/resources:search:
    get:
      summary: SearchResources searches memos.
      operationId: ResourceService_SearchResources
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SearchResourcesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: filter
          in: query
          required: false
          type: string
      tags:
        - ResourceService
  /api/v2/storages:
    get:
      summary: ListStorages returns a list of storages.
      operationId: StorageService_ListStorages
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListStoragesResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - StorageService
    post:
      summary: CreateStorage creates a new storage.
      operationId: StorageService_CreateStorage
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2CreateStorageResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/v2CreateStorageRequest'
      tags:
        - StorageService
  /api/v2/storages/{id}:
    get:
      summary: GetStorage returns a storage by id.
      operationId: StorageService_GetStorage
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetStorageResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - StorageService
    delete:
      summary: DeleteStorage deletes a storage by id.
      operationId: StorageService_DeleteStorage
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteStorageResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: integer
          format: int32
      tags:
        - StorageService
  /api/v2/storages/{storage.id}:
    patch:
      summary: UpdateStorage updates a storage.
      operationId: StorageService_UpdateStorage
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateStorageResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: storage.id
          in: path
          required: true
          type: integer
          format: int32
        - name: storage
          in: body
          required: true
          schema:
            type: object
            properties:
              title:
                type: string
              type:
                $ref: '#/definitions/apiv2StorageType'
              config:
                $ref: '#/definitions/apiv2StorageConfig'
      tags:
        - StorageService
  /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/{id}
          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/{id}
          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/{id}
          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/{id}
          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/users:search:
    get:
      summary: SearchUsers searches users by filter.
      operationId: UserService_SearchUsers
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SearchUsersResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: filter
          description: |-
            Filter is used to filter users returned in the list.
            Format: "username == frank"
          in: query
          required: false
          type: string
      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
  /api/v2/workspace/settings:
    get:
      summary: ListWorkspaceSetting returns the list of settings.
      operationId: WorkspaceSettingService_ListWorkspaceSettings
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2ListWorkspaceSettingsResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      tags:
        - WorkspaceSettingService
  /api/v2/workspace/{name}:
    get:
      summary: GetWorkspaceSetting returns the setting by name.
      operationId: WorkspaceSettingService_GetWorkspaceSetting
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetWorkspaceSettingResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name
          description: |-
            The resource name of the workspace setting.
            Format: settings/{setting}
          in: path
          required: true
          type: string
          pattern: settings/[^/]+
      tags:
        - WorkspaceSettingService
  /api/v2/workspace/{setting.name}:
    patch:
      summary: SetWorkspaceSetting updates the setting.
      operationId: WorkspaceSettingService_SetWorkspaceSetting
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2SetWorkspaceSettingResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: setting.name
          description: |-
            name is the name of the setting.
            Format: settings/{setting}
          in: path
          required: true
          type: string
          pattern: settings/[^/]+
        - name: setting
          description: setting is the setting to update.
          in: body
          required: true
          schema:
            type: object
            properties:
              generalSetting:
                $ref: '#/definitions/apiv2WorkspaceGeneralSetting'
              storageSetting:
                $ref: '#/definitions/apiv2WorkspaceStorageSetting'
              memoRelatedSetting:
                $ref: '#/definitions/apiv2WorkspaceMemoRelatedSetting'
              telegramIntegrationSetting:
                $ref: '#/definitions/apiv2WorkspaceTelegramIntegrationSetting'
            title: setting is the setting to update.
      tags:
        - WorkspaceSettingService
  /api/v2/{identityProvider.name}:
    patch:
      summary: UpdateIdentityProvider updates an identity provider.
      operationId: IdentityProviderService_UpdateIdentityProvider
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2UpdateIdentityProviderResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: identityProvider.name
          description: |-
            The name of the identityProvider.
            Format: identityProviders/{id}
          in: path
          required: true
          type: string
          pattern: identityProviders/[^/]+
        - name: identityProvider
          description: The identityProvider to update.
          in: body
          required: true
          schema:
            type: object
            properties:
              type:
                $ref: '#/definitions/v2IdentityProviderType'
              title:
                type: string
              identifierFilter:
                type: string
              config:
                $ref: '#/definitions/apiv2IdentityProviderConfig'
            title: The identityProvider to update.
      tags:
        - IdentityProviderService
  /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/{id}
          in: path
          required: true
          type: string
          pattern: inboxes/[^/]+
        - name: inbox
          in: body
          required: true
          schema:
            type: object
            properties:
              sender:
                type: string
                title: 'Format: users/{id}'
              receiver:
                type: string
                title: 'Format: users/{id}'
              status:
                $ref: '#/definitions/v2InboxStatus'
              createTime:
                type: string
                format: date-time
              type:
                $ref: '#/definitions/v2InboxType'
              activityId:
                type: integer
                format: int32
      tags:
        - InboxService
  /api/v2/{memo.name}:
    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.name
          description: |-
            The name of the memo.
            Format: memos/{id}
            id is the system generated id.
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
        - name: memo
          in: body
          required: true
          schema:
            type: object
            properties:
              uid:
                type: string
                description: The user defined id of the memo.
              rowStatus:
                $ref: '#/definitions/apiv2RowStatus'
              creator:
                type: string
                title: |-
                  The name of the creator.
                  Format: users/{id}
              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/{name_1}:
    get:
      operationId: IdentityProviderService_GetIdentityProvider
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2GetIdentityProviderResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name_1
          description: |-
            The name of the identityProvider to get.
            Format: identityProviders/{id}
          in: path
          required: true
          type: string
          pattern: identityProviders/[^/]+
      tags:
        - IdentityProviderService
    delete:
      summary: DeleteIdentityProvider deletes an identity provider.
      operationId: IdentityProviderService_DeleteIdentityProvider
      responses:
        "200":
          description: A successful response.
          schema:
            $ref: '#/definitions/v2DeleteIdentityProviderResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/googlerpcStatus'
      parameters:
        - name: name_1
          description: |-
            The name of the identityProvider to delete.
            Format: identityProviders/{id}
          in: path
          required: true
          type: string
          pattern: identityProviders/[^/]+
      tags:
        - IdentityProviderService
  /api/v2/{name_2}:
    get:
      summary: GetResource returns a resource by name.
      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: name_2
          description: |-
            The name of the resource.
            Format: resources/{id}
            id is the system generated unique identifier.
          in: path
          required: true
          type: string
          pattern: resources/[^/]+
      tags:
        - ResourceService
    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_2
          description: |-
            The name of the inbox to delete.
            Format: inboxes/{id}
          in: path
          required: true
          type: string
          pattern: inboxes/[^/]+
      tags:
        - InboxService
  /api/v2/{name_3}:
    get:
      summary: GetMemo gets a memo.
      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: name_3
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
      tags:
        - MemoService
    delete:
      summary: DeleteResource deletes a resource by name.
      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: name_3
          description: |-
            The name of the resource.
            Format: resources/{id}
            id is the system generated unique identifier.
          in: path
          required: true
          type: string
          pattern: resources/[^/]+
      tags:
        - ResourceService
  /api/v2/{name_4}:
    delete:
      summary: DeleteMemo deletes a memo.
      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: name_4
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
      tags:
        - MemoService
  /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/{id}
          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/{id}
          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/{id}
          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/{id}
          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/{id}
          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}/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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
      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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
        - name: comment.content
          in: query
          required: false
          type: string
        - name: comment.visibility
          in: query
          required: false
          type: string
          enum:
            - VISIBILITY_UNSPECIFIED
            - PRIVATE
            - PROTECTED
            - PUBLIC
          default: VISIBILITY_UNSPECIFIED
      tags:
        - MemoService
  /api/v2/{name}/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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
      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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
        - name: reaction.id
          in: query
          required: false
          type: integer
          format: int32
        - name: reaction.creator
          description: |-
            The name of the creator.
            Format: users/{id}
          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/{name}/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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
      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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/MemoServiceSetMemoRelationsBody'
      tags:
        - MemoService
  /api/v2/{name}/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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
      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: name
          description: |-
            The name of the memo.
            Format: memos/{id}
          in: path
          required: true
          type: string
          pattern: memos/[^/]+
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/MemoServiceSetMemoResourcesBody'
      tags:
        - MemoService
  /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/{id}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
      tags:
        - UserService
  /api/v2/{resource.name}:
    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.name
          description: |-
            The name of the resource.
            Format: resources/{id}
            id is the system generated unique identifier.
          in: path
          required: true
          type: string
          pattern: resources/[^/]+
        - name: resource
          in: body
          required: true
          schema:
            type: object
            properties:
              uid:
                type: string
                description: The user defined id of the resource.
              createTime:
                type: string
                format: date-time
                readOnly: true
              filename:
                type: string
              content:
                type: string
                format: byte
              externalLink:
                type: string
              type:
                type: string
              size:
                type: string
                format: int64
              memo:
                type: string
                title: |-
                  The related memo.
                  Format: memos/{id}
      tags:
        - ResourceService
  /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/{id}
          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.
      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/{id}
          in: path
          required: true
          type: string
          pattern: users/[^/]+
        - name: user
          in: body
          required: true
          schema:
            type: object
            properties:
              id:
                type: integer
                format: int32
                description: The system generated uid of the user.
              role:
                $ref: '#/definitions/UserRole'
              username:
                type: string
              email:
                type: string
              nickname:
                type: string
              avatarUrl:
                type: string
              description:
                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
  apiv2FieldMapping:
    type: object
    properties:
      identifier:
        type: string
      displayName:
        type: string
      email:
        type: string
  apiv2IdentityProviderConfig:
    type: object
    properties:
      oauth2:
        $ref: '#/definitions/apiv2OAuth2Config'
  apiv2OAuth2Config:
    type: object
    properties:
      clientId:
        type: string
      clientSecret:
        type: string
      authUrl:
        type: string
      tokenUrl:
        type: string
      userInfoUrl:
        type: string
      scopes:
        type: array
        items:
          type: string
      fieldMapping:
        $ref: '#/definitions/apiv2FieldMapping'
  apiv2Reaction:
    type: object
    properties:
      id:
        type: integer
        format: int32
      creator:
        type: string
        title: |-
          The name of the creator.
          Format: users/{id}
      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
  apiv2S3Config:
    type: object
    properties:
      endPoint:
        type: string
      path:
        type: string
      region:
        type: string
      accessKey:
        type: string
      secretKey:
        type: string
      bucket:
        type: string
      urlPrefix:
        type: string
      urlSuffix:
        type: string
      preSign:
        type: boolean
  apiv2Storage:
    type: object
    properties:
      id:
        type: integer
        format: int32
      title:
        type: string
      type:
        $ref: '#/definitions/apiv2StorageType'
      config:
        $ref: '#/definitions/apiv2StorageConfig'
  apiv2StorageConfig:
    type: object
    properties:
      s3Config:
        $ref: '#/definitions/apiv2S3Config'
  apiv2StorageType:
    type: string
    enum:
      - TYPE_UNSPECIFIED
      - S3
    default: TYPE_UNSPECIFIED
  apiv2UserSetting:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of the user.
          Format: users/{id}
      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.
  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
  apiv2WorkspaceCustomProfile:
    type: object
    properties:
      title:
        type: string
      description:
        type: string
      logoUrl:
        type: string
      locale:
        type: string
      appearance:
        type: string
  apiv2WorkspaceGeneralSetting:
    type: object
    properties:
      instanceUrl:
        type: string
        description: instance_url is the instance URL.
      disallowSignup:
        type: boolean
        description: disallow_signup is the flag to disallow signup.
      disallowPasswordLogin:
        type: boolean
        description: disallow_password_login is the flag to disallow password login.
      additionalScript:
        type: string
        description: additional_script is the additional script.
      additionalStyle:
        type: string
        description: additional_style is the additional style.
      customProfile:
        $ref: '#/definitions/apiv2WorkspaceCustomProfile'
        description: custom_profile is the custom profile.
  apiv2WorkspaceMemoRelatedSetting:
    type: object
    properties:
      disallowPublicVisible:
        type: boolean
        description: disallow_public_share disallows set memo as public visible.
      displayWithUpdateTime:
        type: boolean
        description: display_with_update_time orders and displays memo with update time.
  apiv2WorkspaceSetting:
    type: object
    properties:
      name:
        type: string
        title: |-
          name is the name of the setting.
          Format: settings/{setting}
      generalSetting:
        $ref: '#/definitions/apiv2WorkspaceGeneralSetting'
      storageSetting:
        $ref: '#/definitions/apiv2WorkspaceStorageSetting'
      memoRelatedSetting:
        $ref: '#/definitions/apiv2WorkspaceMemoRelatedSetting'
      telegramIntegrationSetting:
        $ref: '#/definitions/apiv2WorkspaceTelegramIntegrationSetting'
  apiv2WorkspaceStorageSetting:
    type: object
    properties:
      storageType:
        $ref: '#/definitions/apiv2WorkspaceStorageSettingStorageType'
        description: storage_type is the storage type.
      activedExternalStorageId:
        type: integer
        format: int32
        description: The id of actived external storage.
      localStoragePathTemplate:
        type: string
        title: |-
          The template of local storage path.
          e.g. assets/{timestamp}_{filename}
      uploadSizeLimitMb:
        type: string
        format: int64
        description: The max upload size in megabytes.
  apiv2WorkspaceStorageSettingStorageType:
    type: string
    enum:
      - STORAGE_TYPE_UNSPECIFIED
      - STORAGE_TYPE_DATABASE
      - STORAGE_TYPE_LOCAL
      - STORAGE_TYPE_EXTERNAL
    default: STORAGE_TYPE_UNSPECIFIED
    description: |2-
       - STORAGE_TYPE_DATABASE: STORAGE_TYPE_DATABASE is the database storage type.
       - STORAGE_TYPE_LOCAL: STORAGE_TYPE_LOCAL is the local storage type.
       - STORAGE_TYPE_EXTERNAL: STORAGE_TYPE_EXTERNAL is the external storage type.
  apiv2WorkspaceTelegramIntegrationSetting:
    type: object
    properties:
      botToken:
        type: string
        description: bot_token is the telegram bot token.
  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
  v2CreateIdentityProviderResponse:
    type: object
    properties:
      identityProvider:
        $ref: '#/definitions/v2IdentityProvider'
        description: The created identityProvider.
  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'
  v2CreateStorageRequest:
    type: object
    properties:
      storage:
        $ref: '#/definitions/apiv2Storage'
  v2CreateStorageResponse:
    type: object
    properties:
      storage:
        $ref: '#/definitions/apiv2Storage'
  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'
  v2DeleteIdentityProviderResponse:
    type: object
  v2DeleteInboxResponse:
    type: object
  v2DeleteMemoReactionResponse:
    type: object
  v2DeleteMemoResponse:
    type: object
  v2DeleteResourceResponse:
    type: object
  v2DeleteStorageResponse:
    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'
  v2GetIdentityProviderResponse:
    type: object
    properties:
      identityProvider:
        $ref: '#/definitions/v2IdentityProvider'
        description: The identityProvider.
  v2GetLinkMetadataResponse:
    type: object
    properties:
      linkMetadata:
        $ref: '#/definitions/v2LinkMetadata'
  v2GetMemoResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2GetResourceResponse:
    type: object
    properties:
      resource:
        $ref: '#/definitions/v2Resource'
  v2GetStorageResponse:
    type: object
    properties:
      storage:
        $ref: '#/definitions/apiv2Storage'
  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'
  v2GetWorkspaceSettingResponse:
    type: object
    properties:
      setting:
        $ref: '#/definitions/apiv2WorkspaceSetting'
  v2IdentityProvider:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of the identityProvider.
          Format: identityProviders/{id}
      type:
        $ref: '#/definitions/v2IdentityProviderType'
      title:
        type: string
      identifierFilter:
        type: string
      config:
        $ref: '#/definitions/apiv2IdentityProviderConfig'
  v2IdentityProviderType:
    type: string
    enum:
      - TYPE_UNSPECIFIED
      - OAUTH2
    default: TYPE_UNSPECIFIED
  v2Inbox:
    type: object
    properties:
      name:
        type: string
        title: |-
          The name of the inbox.
          Format: inboxes/{id}
      sender:
        type: string
        title: 'Format: users/{id}'
      receiver:
        type: string
        title: 'Format: users/{id}'
      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
  v2LinkMetadata:
    type: object
    properties:
      title:
        type: string
      description:
        type: string
      image:
        type: string
  v2ListIdentityProvidersResponse:
    type: object
    properties:
      identityProviders:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2IdentityProvider'
  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'
  v2ListStoragesResponse:
    type: object
    properties:
      storages:
        type: array
        items:
          type: object
          $ref: '#/definitions/apiv2Storage'
  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'
  v2ListWorkspaceSettingsResponse:
    type: object
    properties:
      settings:
        type: array
        items:
          type: object
          $ref: '#/definitions/apiv2WorkspaceSetting'
  v2Memo:
    type: object
    properties:
      name:
        type: string
        description: |-
          The name of the memo.
          Format: memos/{id}
          id is the system generated id.
      uid:
        type: string
        description: The user defined id of the memo.
      rowStatus:
        $ref: '#/definitions/apiv2RowStatus'
      creator:
        type: string
        title: |-
          The name of the creator.
          Format: users/{id}
      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:
      memo:
        type: string
        title: |-
          The name of memo.
          Format: "memos/{uid}"
      relatedMemo:
        type: string
        title: |-
          The name of related memo.
          Format: "memos/{uid}"
      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:
      name:
        type: string
        description: |-
          The name of the resource.
          Format: resources/{id}
          id is the system generated unique identifier.
      uid:
        type: string
        description: The user defined id of the resource.
      createTime:
        type: string
        format: date-time
        readOnly: true
      filename:
        type: string
      content:
        type: string
        format: byte
      externalLink:
        type: string
      type:
        type: string
      size:
        type: string
        format: int64
      memo:
        type: string
        title: |-
          The related memo.
          Format: memos/{id}
  v2SearchMemosResponse:
    type: object
    properties:
      memos:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Memo'
  v2SearchResourcesResponse:
    type: object
    properties:
      resources:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2Resource'
  v2SearchUsersResponse:
    type: object
    properties:
      users:
        type: array
        items:
          type: object
          $ref: '#/definitions/v2User'
  v2SetMemoRelationsResponse:
    type: object
  v2SetMemoResourcesResponse:
    type: object
  v2SetWorkspaceSettingResponse:
    type: object
    properties:
      setting:
        $ref: '#/definitions/apiv2WorkspaceSetting'
  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/{id}
  v2UpdateIdentityProviderResponse:
    type: object
    properties:
      identityProvider:
        $ref: '#/definitions/v2IdentityProvider'
        description: The updated identityProvider.
  v2UpdateInboxResponse:
    type: object
    properties:
      inbox:
        $ref: '#/definitions/v2Inbox'
  v2UpdateMemoResponse:
    type: object
    properties:
      memo:
        $ref: '#/definitions/v2Memo'
  v2UpdateResourceResponse:
    type: object
    properties:
      resource:
        $ref: '#/definitions/v2Resource'
  v2UpdateStorageResponse:
    type: object
    properties:
      storage:
        $ref: '#/definitions/apiv2Storage'
  v2UpdateUserResponse:
    type: object
    properties:
      user:
        $ref: '#/definitions/v2User'
  v2UpdateUserSettingResponse:
    type: object
    properties:
      setting:
        $ref: '#/definitions/apiv2UserSetting'
  v2UpdateWebhookResponse:
    type: object
    properties:
      webhook:
        $ref: '#/definitions/apiv2Webhook'
  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/{id}
      id:
        type: integer
        format: int32
        description: The system generated uid of the user.
      role:
        $ref: '#/definitions/UserRole'
      username:
        type: string
      email:
        type: string
      nickname:
        type: string
      avatarUrl:
        type: string
      description:
        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:
      owner:
        type: string
        title: |-
          The name of intance owner.
          Format: "users/{id}"
      version:
        type: string
        title: version is the current version of instance
      mode:
        type: string
        description: mode is the instance mode (e.g. "prod", "dev" or "demo").
