swagger: '2.0'
info:
  title: Wechaty Puppet Service OpenAPI Specification
  description: >-
    Wechaty is a Conversational RPA SDK for chatbot makers. With only 6 lines of
    code, you can create a bot on the most popular IMs like WeChat, Whatsapp,
    WeCom, Gitter, etc.


    Wechaty Puppet Service is the RESTful API for Wechaty API, which is build on
    top of the Wechaty Puppet Abstraction and the gRPC proto definition.
  version: 1.0.1
  contact:
    name: Wechaty
    url: 'https://github.com/wechaty/openapi'
    email: wechaty@chatie.io
  license:
    name: Apache-2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
  - name: Puppet
consumes:
  - application/json
produces:
  - application/json
paths:
  /contacts:
    get:
      summary: >-
        *

        Huan(202002): consider changing response to a stream in the future for
        better performance
      operationId: Puppet_ContactList
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactListResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  '/contacts/-/tags/{id}':
    delete:
      summary: |-
        *
        Operate Sub-Collections
          https://cloud.google.com/apis/design/design_patterns#list_sub-collections
      operationId: Puppet_TagContactDelete
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetTagContactDeleteResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/contacts/self/name/{name}':
    put:
      operationId: Puppet_ContactSelfName
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactSelfNameResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: name
          in: path
          required: true
          type: string
      tags:
        - Puppet
  /contacts/self/qrcode:
    get:
      summary: '*'
      description: Contact Self
      operationId: Puppet_ContactSelfQRCode
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactSelfQRCodeResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  /contacts/self/signature:
    put:
      operationId: Puppet_ContactSelfSignature
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactSelfSignatureResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetContactSelfSignatureRequest'
      tags:
        - Puppet
  '/contacts/{contactId}/corporation-remark':
    put:
      operationId: Puppet_ContactCorporationRemark
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactCorporationRemarkResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              corporationRemarkStringValueDeprecated:
                type: string
              corporationRemark:
                type: string
      tags:
        - Puppet
  '/contacts/{contactId}/description':
    put:
      operationId: Puppet_ContactDescription
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactDescriptionResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              descriptionStringValueDeprecated:
                type: string
              description:
                type: string
      tags:
        - Puppet
  '/contacts/{contactId}/phone':
    put:
      operationId: Puppet_ContactPhone
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactPhoneResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              phones:
                type: array
                items:
                  type: string
      tags:
        - Puppet
  '/contacts/{contactId}/tags':
    get:
      operationId: Puppet_TagContactList
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetTagContactListResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: contactIdStringValueDeprecated
          description: |-
            @deprecated:
             Huan(202109): Wrapper types must not be used going forward.
               https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
          in: query
          required: false
          type: string
      tags:
        - Puppet
  '/contacts/{contactId}/tags/{id}':
    delete:
      operationId: Puppet_TagContactRemove
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetTagContactRemoveResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
    put:
      summary: '*'
      description: Tag
      operationId: Puppet_TagContactAdd
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetTagContactAddResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/contacts/{id}':
    get:
      summary: Get a contact payload
      description: Contact
      operationId: contactPayload
      responses:
        '200':
          description: Contact payload
          schema:
            $ref: '#/definitions/puppetContactPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - contact
  '/contacts/{id}/alias':
    put:
      operationId: Puppet_ContactAlias
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactAliasResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              aliasStringValueDeprecated:
                type: string
                title: nullable
              alias:
                type: string
      tags:
        - Puppet
  '/contacts/{id}/avatar':
    get:
      operationId: Puppet_ContactAvatar
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetContactAvatarResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: fileboxStringValueDeprecated
          in: query
          required: false
          type: string
        - name: fileBox
          in: query
          required: false
          type: string
      tags:
        - Puppet
  '/contacts/{id}/dirty/{type}':
    put:
      operationId: Puppet_DirtyPayload2
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetDirtyPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: type
          in: path
          required: true
          type: string
          enum:
            - PAYLOAD_TYPE_UNSPECIFIED
            - PAYLOAD_TYPE_MESSAGE
            - PAYLOAD_TYPE_CONTACT
            - PAYLOAD_TYPE_ROOM
            - PAYLOAD_TYPE_ROOM_MEMBER
            - PAYLOAD_TYPE_FRIENDSHIP
          pattern: PAYLOAD_TYPE_CONTACT
      tags:
        - Puppet
  '/conversations/{conversationId}/contact':
    post:
      operationId: Puppet_MessageSendContact
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendContactResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: conversationId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              contactId:
                type: string
      tags:
        - Puppet
  '/conversations/{conversationId}/forward/{messageId}':
    post:
      operationId: Puppet_MessageForward2
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageForwardResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: conversationId
          in: path
          required: true
          type: string
        - name: messageId
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/conversations/{conversationId}/location':
    post:
      operationId: Puppet_MessageSendLocation
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendLocationResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: conversationId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              location:
                $ref: '#/definitions/puppetLocationPayload'
      tags:
        - Puppet
  '/conversations/{conversationId}/mini-program':
    post:
      operationId: Puppet_MessageSendMiniProgram
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendMiniProgramResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: conversationId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              miniProgramDeprecated:
                type: string
                title: >-
                  *

                  Huan(202110): We should use payload instead of JSON.stringify
                  string
                   The compatible code will be removed after Dec 31, 2022
              miniProgram:
                $ref: '#/definitions/puppetMiniProgramPayload'
      tags:
        - Puppet
  '/conversations/{conversationId}/text':
    post:
      operationId: Puppet_MessageSendText
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendTextResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: conversationId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              text:
                type: string
              mentionalIds:
                type: array
                items:
                  type: string
                title: |-
                  Huan(202011) FIXME: Issue #99
                  https://github.com/wechaty/grpc/issues/99
      tags:
        - Puppet
  '/conversations/{conversationId}/url-link':
    post:
      operationId: Puppet_MessageSendUrl
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendUrlResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: conversationId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              urlLinkDeprecated:
                type: string
                title: >-
                  *

                  Huan(202110): We should use payload instead of JSON.stringify
                  string
                   The compatible code will be removed after Dec 31, 2022
              urlLink:
                $ref: '#/definitions/puppetUrlLinkPayload'
      tags:
        - Puppet
  /ding:
    post:
      operationId: Puppet_Ding
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetDingResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetDingRequest'
      tags:
        - Puppet
  '/download/{id}':
    get:
      summary: |-
        *
        File/Blob download & upload
      operationId: Puppet_Download
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/puppetDownloadResponse'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of puppetDownloadResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  /events:
    get:
      summary: '*'
      description: Event - Server Stream
      operationId: Puppet_Event
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/puppetEventResponse'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of puppetEventResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  '/friendship/accept/{id}':
    put:
      operationId: Puppet_FriendshipAccept
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetFriendshipAcceptResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/friendship/add/{contactId}':
    put:
      operationId: Puppet_FriendshipAdd
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetFriendshipAddResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: contactId
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              hello:
                type: string
              sourceRoomIdStringValueDeprecated:
                type: string
              sourceContactIdStringValueDeprecated:
                type: string
              referrer:
                $ref: '#/definitions/puppetReferrer'
      tags:
        - Puppet
  '/friendship/search/phone/{phone}':
    get:
      operationId: Puppet_FriendshipSearchPhone
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetFriendshipSearchPhoneResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: phone
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/friendship/search/weixin/{weixin}':
    get:
      operationId: Puppet_FriendshipSearchWeixin
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetFriendshipSearchWeixinResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: weixin
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/friendship/{id}':
    get:
      summary: '*'
      description: Friendship
      operationId: Puppet_FriendshipPayload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetFriendshipPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: payloadStringValueDeprecated
          description: |-
            *
            Huan(202003):
             What's the reason we need belowing payload?
             We should remove it if possible.
          in: query
          required: false
          type: string
        - name: payload
          in: query
          required: false
          type: string
      tags:
        - Puppet
  '/friendships/{id}/dirty/{type}':
    put:
      operationId: Puppet_DirtyPayload5
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetDirtyPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: type
          in: path
          required: true
          type: string
          enum:
            - PAYLOAD_TYPE_UNSPECIFIED
            - PAYLOAD_TYPE_MESSAGE
            - PAYLOAD_TYPE_CONTACT
            - PAYLOAD_TYPE_ROOM
            - PAYLOAD_TYPE_ROOM_MEMBER
            - PAYLOAD_TYPE_FRIENDSHIP
          pattern: PAYLOAD_TYPE_FRIENDSHIP
      tags:
        - Puppet
  /logout:
    put:
      operationId: Puppet_Logout
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetLogoutResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  '/message/{id}':
    get:
      operationId: Puppet_MessagePayload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessagePayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/message/{id}/contact':
    get:
      operationId: Puppet_MessageContact
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageContactResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/message/{id}/dirty/{type}':
    put:
      operationId: Puppet_DirtyPayload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetDirtyPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: type
          in: path
          required: true
          type: string
          enum:
            - PAYLOAD_TYPE_UNSPECIFIED
            - PAYLOAD_TYPE_MESSAGE
            - PAYLOAD_TYPE_CONTACT
            - PAYLOAD_TYPE_ROOM
            - PAYLOAD_TYPE_ROOM_MEMBER
            - PAYLOAD_TYPE_FRIENDSHIP
          pattern: PAYLOAD_TYPE_MESSAGE
      tags:
        - Puppet
  '/message/{id}/location':
    get:
      operationId: Puppet_MessageLocation
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageLocationResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/message/{id}/mini-program':
    get:
      operationId: Puppet_MessageMiniProgram
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageMiniProgramResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/message/{id}/recall':
    put:
      operationId: Puppet_MessageRecall
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageRecallResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/message/{id}/url-link':
    get:
      operationId: Puppet_MessageUrl
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageUrlResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/messages/{messageId}/forward/{conversationId}':
    post:
      operationId: Puppet_MessageForward
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageForwardResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: messageId
          in: path
          required: true
          type: string
        - name: conversationId
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/room-invitations/{id}':
    get:
      summary: '*'
      description: Room Invitation
      operationId: Puppet_RoomInvitationPayload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomInvitationPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: payloadStringValueDeprecated
          description: |-
            *
            Huan(202002): `payload` should be removed.
             The puppet server should take the responsibilities
             for storing the unaccepted friend-request payload.

            @deprecated: use payload instead.
             Huan(202109): Wrapper types must not be used going forward.
               https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
          in: query
          required: false
          type: string
        - name: payload
          in: query
          required: false
          type: string
      tags:
        - Puppet
  '/room-invitations/{id}/accept':
    put:
      operationId: Puppet_RoomInvitationAccept
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomInvitationAcceptResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  /rooms:
    get:
      operationId: Puppet_RoomList
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomListResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
    post:
      operationId: Puppet_RoomCreate
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomCreateResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetRoomCreateRequest'
      tags:
        - Puppet
  '/rooms/{id}':
    get:
      summary: '*'
      description: Room
      operationId: Puppet_RoomPayload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
    delete:
      operationId: Puppet_RoomQuit
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomQuitResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/rooms/{id}/add/{contactId}':
    put:
      operationId: Puppet_RoomAdd
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomAddResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: contactId
          in: path
          required: true
          type: string
        - name: inviteOnly
          in: query
          required: false
          type: boolean
      tags:
        - Puppet
  '/rooms/{id}/announcement':
    get:
      operationId: Puppet_RoomAnnounce
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomAnnounceResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: textStringValueDeprecated
          in: query
          required: false
          type: string
        - name: text
          in: query
          required: false
          type: string
      tags:
        - Puppet
    put:
      operationId: Puppet_RoomAnnounce2
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomAnnounceResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              textStringValueDeprecated:
                type: string
              text:
                type: string
      tags:
        - Puppet
  '/rooms/{id}/avatar':
    get:
      operationId: Puppet_RoomAvatar
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomAvatarResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/rooms/{id}/dirty/members/{type}':
    put:
      operationId: Puppet_DirtyPayload4
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetDirtyPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: type
          in: path
          required: true
          type: string
          enum:
            - PAYLOAD_TYPE_UNSPECIFIED
            - PAYLOAD_TYPE_MESSAGE
            - PAYLOAD_TYPE_CONTACT
            - PAYLOAD_TYPE_ROOM
            - PAYLOAD_TYPE_ROOM_MEMBER
            - PAYLOAD_TYPE_FRIENDSHIP
          pattern: PAYLOAD_TYPE_ROOM_MEMBER
      tags:
        - Puppet
  '/rooms/{id}/dirty/{type}':
    put:
      operationId: Puppet_DirtyPayload3
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetDirtyPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: type
          in: path
          required: true
          type: string
          enum:
            - PAYLOAD_TYPE_UNSPECIFIED
            - PAYLOAD_TYPE_MESSAGE
            - PAYLOAD_TYPE_CONTACT
            - PAYLOAD_TYPE_ROOM
            - PAYLOAD_TYPE_ROOM_MEMBER
            - PAYLOAD_TYPE_FRIENDSHIP
          pattern: PAYLOAD_TYPE_ROOM
      tags:
        - Puppet
  '/rooms/{id}/member/{contactId}':
    delete:
      operationId: Puppet_RoomDel
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomDelResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: contactId
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/rooms/{id}/members':
    get:
      operationId: Puppet_RoomMemberList
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomMemberListResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/rooms/{id}/members/{memberId}':
    get:
      summary: '*'
      description: Room Member
      operationId: Puppet_RoomMemberPayload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomMemberPayloadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: memberId
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/rooms/{id}/qrcode':
    get:
      operationId: Puppet_RoomQRCode
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomQRCodeResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
      tags:
        - Puppet
  '/rooms/{id}/topic':
    get:
      operationId: Puppet_RoomTopic
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetRoomTopicResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: id
          in: path
          required: true
          type: string
        - name: topicStringValueDeprecated
          in: query
          required: false
          type: string
        - name: topic
          in: query
          required: false
          type: string
      tags:
        - Puppet
  /start:
    put:
      summary: '*'
      description: Base
      operationId: Puppet_Start
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetStartResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  /stop:
    put:
      operationId: Puppet_Stop
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetStopResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  /upload:
    post:
      operationId: Puppet_Upload
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetUploadResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          description: ' (streaming inputs)'
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetUploadRequest'
      tags:
        - Puppet
  /version:
    get:
      operationId: Puppet_Version
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetVersionResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      tags:
        - Puppet
  /wechaty.Puppet/MessageFile:
    post:
      operationId: Puppet_MessageFile
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageFileResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetMessageFileRequest'
      tags:
        - Puppet
  /wechaty.Puppet/MessageFileStream:
    post:
      summary: |-
        *
        Deprecated: will be removed after Dec 31, 2022
      operationId: Puppet_MessageFileStream
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/puppetMessageFileStreamResponse'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of puppetMessageFileStreamResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetMessageFileStreamRequest'
      tags:
        - Puppet
  /wechaty.Puppet/MessageImage:
    post:
      operationId: Puppet_MessageImage
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageImageResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetMessageImageRequest'
      tags:
        - Puppet
  /wechaty.Puppet/MessageImageStream:
    post:
      operationId: Puppet_MessageImageStream
      responses:
        '200':
          description: A successful response.(streaming responses)
          schema:
            type: object
            properties:
              result:
                $ref: '#/definitions/puppetMessageImageStreamResponse'
              error:
                $ref: '#/definitions/rpcStatus'
            title: Stream result of puppetMessageImageStreamResponse
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetMessageImageStreamRequest'
      tags:
        - Puppet
  /wechaty.Puppet/MessageSendFile:
    post:
      operationId: Puppet_MessageSendFile
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendFileResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetMessageSendFileRequest'
      tags:
        - Puppet
  /wechaty.Puppet/MessageSendFileStream:
    post:
      operationId: Puppet_MessageSendFileStream
      responses:
        '200':
          description: A successful response.
          schema:
            $ref: '#/definitions/puppetMessageSendFileStreamResponse'
        default:
          description: An unexpected error response.
          schema:
            $ref: '#/definitions/rpcStatus'
      parameters:
        - name: body
          description: ' (streaming inputs)'
          in: body
          required: true
          schema:
            $ref: '#/definitions/puppetMessageSendFileStreamRequest'
      tags:
        - Puppet
definitions:
  protobufAny:
    type: object
    properties:
      '@type':
        type: string
    additionalProperties: {}
  puppetContactAliasResponse:
    type: object
    properties:
      aliasStringValueDeprecated:
        type: string
      alias:
        type: string
  puppetContactAvatarResponse:
    type: object
    properties:
      fileboxStringValueDeprecated:
        type: string
      fileBox:
        type: string
  puppetContactCorporationRemarkResponse:
    type: object
  puppetContactDescriptionResponse:
    type: object
  puppetContactGender:
    type: string
    enum:
      - CONTACT_GENDER_UNSPECIFIED
      - CONTACT_GENDER_MALE
      - CONTACT_GENDER_FEMALE
    default: CONTACT_GENDER_UNSPECIFIED
  puppetContactListResponse:
    type: object
    properties:
      ids:
        type: array
        items:
          type: string
  puppetContactPayloadResponse:
    type: object
    properties:
      id:
        type: string
      gender:
        $ref: '#/definitions/puppetContactGender'
      type:
        $ref: '#/definitions/puppetContactType'
      name:
        type: string
      avatar:
        type: string
      address:
        type: string
      alias:
        type: string
      city:
        type: string
      friend:
        type: boolean
      province:
        type: string
      signature:
        type: string
      star:
        type: boolean
      weixin:
        type: string
      corporation:
        type: string
      title:
        type: string
      description:
        type: string
      coworker:
        type: boolean
      phones:
        type: array
        items:
          type: string
  puppetContactPhoneResponse:
    type: object
    properties:
      phones:
        type: array
        items:
          type: string
  puppetContactSelfNameResponse:
    type: object
  puppetContactSelfQRCodeResponse:
    type: object
    properties:
      qrcode:
        type: string
  puppetContactSelfSignatureRequest:
    type: object
    properties:
      signature:
        type: string
  puppetContactSelfSignatureResponse:
    type: object
  puppetContactType:
    type: string
    enum:
      - CONTACT_TYPE_UNSPECIFIED
      - CONTACT_TYPE_PERSONAL
      - CONTACT_TYPE_OFFICIAL
      - CONTACT_TYPE_CORPORATION
    default: CONTACT_TYPE_UNSPECIFIED
  puppetDingRequest:
    type: object
    properties:
      data:
        type: string
  puppetDingResponse:
    type: object
  puppetDirtyPayloadResponse:
    type: object
  puppetDownloadResponse:
    type: object
    properties:
      chunk:
        type: string
        format: byte
  puppetEventResponse:
    type: object
    properties:
      type:
        $ref: '#/definitions/puppetEventType'
      payload:
        type: string
        title: 'TODO: Huan(202002) consider to use a PB Map?'
  puppetEventType:
    type: string
    enum:
      - EVENT_TYPE_UNSPECIFIED
      - EVENT_TYPE_HEARTBEAT
      - EVENT_TYPE_MESSAGE
      - EVENT_TYPE_DONG
      - EVENT_TYPE_POST
      - EVENT_TYPE_ERROR
      - EVENT_TYPE_FRIENDSHIP
      - EVENT_TYPE_ROOM_INVITE
      - EVENT_TYPE_ROOM_JOIN
      - EVENT_TYPE_ROOM_LEAVE
      - EVENT_TYPE_ROOM_TOPIC
      - EVENT_TYPE_SCAN
      - EVENT_TYPE_READY
      - EVENT_TYPE_RESET
      - EVENT_TYPE_LOGIN
      - EVENT_TYPE_LOGOUT
      - EVENT_TYPE_DIRTY
    default: EVENT_TYPE_UNSPECIFIED
  puppetFileBoxChunk:
    type: object
    properties:
      data:
        type: string
        format: byte
        title: 'oneof payload {'
      name:
        type: string
  puppetFriendshipAcceptResponse:
    type: object
  puppetFriendshipAddResponse:
    type: object
  puppetFriendshipPayloadResponse:
    type: object
    properties:
      id:
        type: string
      contactId:
        type: string
      hello:
        type: string
      type:
        $ref: '#/definitions/puppetFriendshipType'
      stranger:
        type: string
      ticket:
        type: string
      scene:
        $ref: '#/definitions/puppetFriendshipSceneType'
  puppetFriendshipSceneType:
    type: string
    enum:
      - FRIENDSHIP_SCENE_TYPE_UNSPECIFIED
      - FRIENDSHIP_SCENE_TYPE_QQ
      - FRIENDSHIP_SCENE_TYPE_EMAIL
      - FRIENDSHIP_SCENE_TYPE_WEIXIN
      - FRIENDSHIP_SCENE_TYPE_QQTBD
      - FRIENDSHIP_SCENE_TYPE_ROOM
      - FRIENDSHIP_SCENE_TYPE_PHONE
      - FRIENDSHIP_SCENE_TYPE_CARD
      - FRIENDSHIP_SCENE_TYPE_LOCATION
      - FRIENDSHIP_SCENE_TYPE_BOTTLE
      - FRIENDSHIP_SCENE_TYPE_SHAKING
      - FRIENDSHIP_SCENE_TYPE_QRCODE
    default: FRIENDSHIP_SCENE_TYPE_UNSPECIFIED
  puppetFriendshipSearchPhoneResponse:
    type: object
    properties:
      contactIdStringValueDeprecated:
        type: string
        title: nullable
      contactId:
        type: string
  puppetFriendshipSearchWeixinResponse:
    type: object
    properties:
      contactIdStringValueDeprecated:
        type: string
        title: nullable
      contactId:
        type: string
  puppetFriendshipType:
    type: string
    enum:
      - FRIENDSHIP_TYPE_UNSPECIFIED
      - FRIENDSHIP_TYPE_CONFIRM
      - FRIENDSHIP_TYPE_RECEIVE
      - FRIENDSHIP_TYPE_VERIFY
    default: FRIENDSHIP_TYPE_UNSPECIFIED
  puppetImageType:
    type: string
    enum:
      - IMAGE_TYPE_UNSPECIFIED
      - IMAGE_TYPE_THUMBNAIL
      - IMAGE_TYPE_HD
      - IMAGE_TYPE_ARTWORK
    default: IMAGE_TYPE_UNSPECIFIED
  puppetLocationPayload:
    type: object
    properties:
      accuracy:
        type: number
        format: float
      address:
        type: string
      latitude:
        type: number
        format: double
      longitude:
        type: number
        format: double
      name:
        type: string
  puppetLogoutResponse:
    type: object
  puppetMessageContactResponse:
    type: object
    properties:
      id:
        type: string
  puppetMessageFileRequest:
    type: object
    properties:
      id:
        type: string
  puppetMessageFileResponse:
    type: object
    properties:
      fileBox:
        type: string
  puppetMessageFileStreamRequest:
    type: object
    properties:
      id:
        type: string
  puppetMessageFileStreamResponse:
    type: object
    properties:
      fileBoxChunk:
        $ref: '#/definitions/puppetFileBoxChunk'
  puppetMessageForwardResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated: use payload instead.
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageImageRequest:
    type: object
    properties:
      id:
        type: string
      type:
        $ref: '#/definitions/puppetImageType'
  puppetMessageImageResponse:
    type: object
    properties:
      fileBox:
        type: string
  puppetMessageImageStreamRequest:
    type: object
    properties:
      id:
        type: string
      type:
        $ref: '#/definitions/puppetImageType'
  puppetMessageImageStreamResponse:
    type: object
    properties:
      fileBoxChunk:
        $ref: '#/definitions/puppetFileBoxChunk'
  puppetMessageLocationResponse:
    type: object
    properties:
      location:
        $ref: '#/definitions/puppetLocationPayload'
  puppetMessageMiniProgramResponse:
    type: object
    properties:
      miniProgramDeprecated:
        type: string
        title: |-
          *
          Huan(202110): We should use payload instead of JSON.stringify string
           The compatible code will be removed after Dec 31, 2022
      miniProgram:
        $ref: '#/definitions/puppetMiniProgramPayload'
  puppetMessagePayloadResponse:
    type: object
    properties:
      id:
        type: string
      filename:
        type: string
      text:
        type: string
      timestampDeprecated:
        type: string
        format: uint64
        title: |-
          *
          @deprecated will be removed after Dec 31, 2022
           Huan(202109): use receive_time(10) instead
      type:
        $ref: '#/definitions/puppetMessageType'
      fromId:
        type: string
      roomId:
        type: string
      toId:
        type: string
      mentionIds:
        type: array
        items:
          type: string
      receiveTime:
        type: string
        format: date-time
  puppetMessageRecallResponse:
    type: object
    properties:
      success:
        type: boolean
  puppetMessageSendContactResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated:
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageSendFileRequest:
    type: object
    properties:
      conversationId:
        type: string
      fileBox:
        type: string
  puppetMessageSendFileResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated:
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageSendFileStreamRequest:
    type: object
    properties:
      conversationId:
        type: string
        title: 'oneof payload {'
      fileBoxChunk:
        $ref: '#/definitions/puppetFileBoxChunk'
  puppetMessageSendFileStreamResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated:
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageSendLocationResponse:
    type: object
    properties:
      id:
        type: string
        title: >-
          *

          Huan(202110): we will not use wrappers any more by following the
          Google Style Guide:
           If not using optional would add complexity or ambiguity, then use optional primitive fields,
           Wrapper types must not be used going forward.
           — Optional Primitive Fields (https://cloud.google.com/apis/design/design_patterns.md#optional-primitive-fields)
  puppetMessageSendMiniProgramResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated:
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageSendTextResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated:
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageSendUrlResponse:
    type: object
    properties:
      idStringValueDeprecated:
        type: string
        title: |-
          *
          @deprecated:
           Huan(202109): Wrapper types must not be used going forward.
             https://cloud.google.com/apis/design/design_patterns#optional_primitive_fields
      id:
        type: string
  puppetMessageType:
    type: string
    enum:
      - MESSAGE_TYPE_UNSPECIFIED
      - MESSAGE_TYPE_ATTACHMENT
      - MESSAGE_TYPE_AUDIO
      - MESSAGE_TYPE_CONTACT
      - MESSAGE_TYPE_EMOTICON
      - MESSAGE_TYPE_IMAGE
      - MESSAGE_TYPE_TEXT
      - MESSAGE_TYPE_VIDEO
      - MESSAGE_TYPE_CHAT_HISTORY
      - MESSAGE_TYPE_LOCATION
      - MESSAGE_TYPE_MINI_PROGRAM
      - MESSAGE_TYPE_TRANSFER
      - MESSAGE_TYPE_RED_ENVELOPE
      - MESSAGE_TYPE_RECALLED
      - MESSAGE_TYPE_URL
    default: MESSAGE_TYPE_UNSPECIFIED
  puppetMessageUrlResponse:
    type: object
    properties:
      urlLinkDeprecated:
        type: string
        title: |-
          *
          Huan(202110): We should use payload instead of JSON.stringify string
           The compatible code will be removed after Dec 31, 2022
      urlLink:
        $ref: '#/definitions/puppetUrlLinkPayload'
  puppetMiniProgramPayload:
    type: object
    properties:
      appid:
        type: string
      description:
        type: string
      pagePath:
        type: string
      iconUrl:
        type: string
      shareId:
        type: string
      thumbUrl:
        type: string
      title:
        type: string
      username:
        type: string
      thumbKey:
        type: string
  puppetPayloadType:
    type: string
    enum:
      - PAYLOAD_TYPE_UNSPECIFIED
      - PAYLOAD_TYPE_MESSAGE
      - PAYLOAD_TYPE_CONTACT
      - PAYLOAD_TYPE_ROOM
      - PAYLOAD_TYPE_ROOM_MEMBER
      - PAYLOAD_TYPE_FRIENDSHIP
    default: PAYLOAD_TYPE_UNSPECIFIED
  puppetReferrer:
    type: object
    properties:
      contactId:
        type: string
      roomId:
        type: string
    title: >-
      *

      "Referrer" and "Referral" refers to different things. "Referrer" is
      something or somebody who refers. "Referral" is the act of referring.
       - https://english.stackexchange.com/questions/33135/referrer-versus-referral-versus-referer
  puppetRoomAddResponse:
    type: object
  puppetRoomAnnounceResponse:
    type: object
    properties:
      textStringValueDeprecated:
        type: string
      text:
        type: string
  puppetRoomAvatarResponse:
    type: object
    properties:
      fileBox:
        type: string
  puppetRoomCreateRequest:
    type: object
    properties:
      contactIds:
        type: array
        items:
          type: string
      topic:
        type: string
  puppetRoomCreateResponse:
    type: object
    properties:
      id:
        type: string
  puppetRoomDelResponse:
    type: object
  puppetRoomInvitationAcceptResponse:
    type: object
  puppetRoomInvitationPayloadResponse:
    type: object
    properties:
      id:
        type: string
      inviterId:
        type: string
      topic:
        type: string
      memberCount:
        type: integer
        format: int32
      memberIds:
        type: array
        items:
          type: string
      timestampUint64Deprecated:
        type: string
        format: uint64
        title: |-
          *
          @deprecated will be removed after Dec 31, 2022
           Huan(202109): use receive_time(10) instead
      avatar:
        type: string
      invitation:
        type: string
      receiverId:
        type: string
      receiveTime:
        type: string
        format: date-time
  puppetRoomListResponse:
    type: object
    properties:
      ids:
        type: array
        items:
          type: string
  puppetRoomMemberListResponse:
    type: object
    properties:
      memberIds:
        type: array
        items:
          type: string
  puppetRoomMemberPayloadResponse:
    type: object
    properties:
      id:
        type: string
      roomAlias:
        type: string
      inviterId:
        type: string
      avatar:
        type: string
      name:
        type: string
  puppetRoomPayloadResponse:
    type: object
    properties:
      id:
        type: string
      topic:
        type: string
      avatar:
        type: string
      ownerId:
        type: string
      adminIds:
        type: array
        items:
          type: string
      memberIds:
        type: array
        items:
          type: string
  puppetRoomQRCodeResponse:
    type: object
    properties:
      qrcode:
        type: string
  puppetRoomQuitResponse:
    type: object
  puppetRoomTopicResponse:
    type: object
    properties:
      topicStringValueDeprecated:
        type: string
      topic:
        type: string
  puppetStartResponse:
    type: object
  puppetStopResponse:
    type: object
  puppetTagContactAddResponse:
    type: object
  puppetTagContactDeleteResponse:
    type: object
  puppetTagContactListResponse:
    type: object
    properties:
      ids:
        type: array
        items:
          type: string
  puppetTagContactRemoveResponse:
    type: object
  puppetUploadRequest:
    type: object
    properties:
      chunk:
        type: string
        format: byte
  puppetUploadResponse:
    type: object
    properties:
      id:
        type: string
  puppetUrlLinkPayload:
    type: object
    properties:
      description:
        type: string
      thumbnailUrl:
        type: string
      title:
        type: string
      url:
        type: string
  puppetVersionResponse:
    type: object
    properties:
      version:
        type: string
  rpcStatus:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string
      details:
        type: array
        items:
          $ref: '#/definitions/protobufAny'

